首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将GET请求转换为POST请求以加载生成的PDF文件

将GET请求转换为POST请求以加载生成的PDF文件
EN

Stack Overflow用户
提问于 2022-03-11 11:18:27
回答 2查看 69关注 0票数 0

在html页面中,我有一个按钮来加载生成的pdf:

代码语言:javascript
复制
<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是这样的:

代码语言:javascript
复制
<?php
require('fpdf/fpdf.php');

$var1 = $_GET['var1'];
$var2 = $_GET['var2'];

$pdf = new PDF();

/* ......... */

$pdf->Output('D','generated.pdf');
?>

我的问题是:

如何使用POST方法更改代码以传递参数?

溶液

ADyson向我推荐了这个解决方案:

代码语言:javascript
复制
<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>

代码语言:javascript
复制
<?php
require('fpdf/fpdf.php');

$var1 = $_POST['var1'];
$var2 = $_POST['var2'];

$pdf = new PDF();

/* ......... */

$pdf->Output('D','generated.pdf');
?>

而且效果很好!

如果我想在不使用表单的情况下做到这一点,我该如何做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-11 14:06:08

如果您想在不编写HTML代码的情况下实现,那么使用以下Javascript

代码语言: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();

注意,表单不会显示在页面上。"display“属性设置为"none”。

票数 1
EN

Stack Overflow用户

发布于 2022-03-11 13:43:53

为此您不需要任何javascript函数。只需使用FORM元素和action post:

代码语言:javascript
复制
<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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71437709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档