我正在使用 DOMPDF,并且希望我的表单输入文本以 PDF 格式提供。因此,当我在输入字段中输入内容并按“导出为 PDF”时,我希望它出现在那里。这就是我计划的解决方案。当我从 HTML 中使用 POST 调用 PHP 时,就会出现问题,因为它不会更新输入值。它只发送空白的。我需要更改它,以便它更新它们。
1) 用文本填写输入字段
2) 单击导出为 PDF
3)使用JQuery更改带有输入值的HTML
4) 调用 PHP 文件 ($dompdf->loadHtml(file_get_contents('index.php'));
我尝试使用 AJAX 来实现此目的,但它不起作用。我不需要将任何数据发送到 PHP 文件。我只需要在 JQuery 更改 HTML 后调用 if 即可。
这是我的 PHP 文件:
<?php
require_once 'autoload.inc.php';
// reference the Dompdf namespace
use Dompdf\Dompdf;
// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml(file_get_contents('index.php'));
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
// Render the HTML as PDF
$dompdf->render('doc.pdf');
// Output the generated PDF to Browser
$dompdf->stream();
?>
还有我的 JQUERY 文件
function ajax() {
alert('in');
$.ajax({
url: 'jobsheet.php',
type: 'POST',
data: formData,
success:function(response){
alert(response);
}
});
}
如果您有任何其他解决方案,请告诉我!
最佳答案
我发现您的技术有两个问题。
首先,Dompdf(从 0.6.1 开始)不解析 PHP,因此您需要在将其传递给 dompdf 之前对其进行预解析。您可以为此使用输出缓冲:
<?php
ob_start();
require_once 'index.php';
$html = ob_get_clean();
ob_end_clean();
require_once 'autoload.inc.php';
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$dompdf->stream();
?>
其次,如果您只想显示结果,为什么还要使用 AJAX?当您可以简单地使用表单帖子时,以这种方式获取和显示 PDF 文档需要更多的工作。如果您有使用 AJAX 的特殊需要,您应该指定。
关于javascript - JQuery 之后调用 PHP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41649314/