【发布时间】:2014-11-06 19:14:02
【问题描述】:
我一直在用这个撞墙,并搜索了这个网站和其他关于如何修复的网站:
我有两个表格,一个在弹出窗口中,用户填写报价单,然后该对话框关闭并返回主表格以与客户交流并附上报价的 PDF。一切正常,直到我尝试不在新窗口中打开它或附加到现有表单。我已经通过 ajax 成功调用了它,但我没有收到结果,尽管它生成的临时文件在服务器上是正确的。
JS 提交报价给 makepdf.php:
function generatepdf(forminfo) {
$.ajax({
url: $(form).attr("action"),
type: 'POST',
data: forminfo,
beforeSend: function() {
$("#qmessage").html("Preparing quote..");
},
success: function(data) {
$("#qmessage").html(data);
//$('.multifile:last').val(data);
}
});
};
makepdf.php的PHP:
$pdf_filename = tempnam(sys_get_temp_dir(), "pdf");
if(!file_exists($pdf_filename) || is_writable($pdf_filename)){
$pdf->Output($pdf_filename, "F");
} else {
exit("Path Not Writable");
}
$pdf->Output($pdf_filename, F);
echo $pdf_filename;
它不会将结果写入 qmessage div,而是将文件保存在服务器上。我没有看到一种对我有意义的方法来将服务器端文件附加回现有的 <input type="file" class="multifile"> 字段。
编辑:两个表单都在同一个页面上,因此在它们之间传递变量不会成为问题。它将 FPDF 输出返回到页面并将其附加到另一个表单(这应该可以通过 .val() 函数实现?)
【问题讨论】:
-
澄清:不需要将文件保存到服务器,我只需要将它返回到父表单中以发送到客户端。我朝这个方向走是因为我认为它可能会简化结果。