在 html 頁面中,我有一個加載生成的 pdf 的按鈕:
<button onclick='getpdf()'>GET PDF</button>
<script>
function getpdf(){
data={
var1: 'var1',
var2: 'var2'
};
window.open('genpdf.php?var1=' data['var1'] '&var2=' data['var2'], '_new');
}
</script>
genpdf.php 是這樣的:
<?php
require('fpdf/fpdf.php');
$var1 = $_GET['var1'];
$var2 = $_GET['var2'];
$pdf = new PDF();
/* ......... */
$pdf->Output('D','generated.pdf');
?>
我的問題是:
如何更改我的代碼以使用 POST 方法傳遞引數?
解決方案
ADyson 建議我這個解決方案:
<form id="pdf" action="genpdf.php" methon="POST" target="_new">
<input type="hidden" name="var1" />
<input type="hidden" name="var2" />
<button onclick='getpdf()'>GET PDF</button>
</form>
<script>
function getpdf(){
$("#pdf input[name=var1]").val('var1');
$("#pdf input[name=var2]").val('var2');
$("#pdf").submit();
}
</script>
和
<?php
require('fpdf/fpdf.php');
$var1 = $_POST['var1'];
$var2 = $_POST['var2'];
$pdf = new PDF();
/* ......... */
$pdf->Output('D','generated.pdf');
?>
它作業正常!
但
如果我想在不使用表格的情況下做到這一點,我該怎么做?
uj5u.com熱心網友回復:
如果您想在不編碼 HTML 的情況下實作,請使用以下 Javascript
var myform = document.createElement('form');
myform.style.display = "none";
myform.name='PdfGenOrSomethingElse';
myform.method='POST';
myform.action='genpdf.php';
myform.target='_blank';
var var1=document.createElement('input');
var1.type='text';
var1.name='var1';
var1.value='Put/update your value';
var var2=document.createElement('input');
var2.type='text';
var2.name='var2';
var2.value='Put/update your value';
myform.appendChild(var1);
myform.appendChild(var2);
document.body.appendChild(myform);
myform.submit();
請注意,表單不會顯示在頁面上。“顯示”屬性設定為“無”。
uj5u.com熱心網友回復:
為此,您不需要任何 javascript 函式。只需將 FORM 元素與操作帖子一起使用:
<form action="genpdf.php" method="post" target="_blank">
<input type="text" name="var1" value="" />
<input type="text" name="var2" value="" />
<button type="submit ">GET PDF</button>
</form>
不要忘記在 PHP 腳本中使用 $_POST 而不是 $_GET。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/442884.html
標籤:javascript php 邮政 得到
