Javascript 使用ajax生成PDF并显示为随机字符串?
对不起,我是新手,但我就是这样。不管怎么说,我正在尝试编写一个如下流程的代码: 用户从数据库中进行查询 结果显示在带有jQuery UI的模式窗口中 有一个选项可以在模式窗口中以PDF格式查看此文件 Ajax将获取html并将其发送到pdfajax.php,以使用TCPDF创建PDF Ajax将返回PDF结果 我试过了,但我可能在第3步到第5步上绊倒了。我所能确定的是,我可以通过Ajax传递所需的html代码,如果我不尝试将其打印为PDF格式,而只是将其作为PHP进行响应,那么它就可以工作了。所以我似乎只停留在第五步 为了进行实验,我只是想显示一个简单的PDF文件,上面写着“嗨”,而不需要输入我现在注释掉的变量 结果很糟糕: 我想我错过了在通过Ajax之前清理数据的函数的使用?但是这个函数是什么呢?或者它真的存在,而这只是一个毫无意义的努力 以下是HTML:Javascript 使用ajax生成PDF并显示为随机字符串?,javascript,php,jquery,ajax,pdf,Javascript,Php,Jquery,Ajax,Pdf,对不起,我是新手,但我就是这样。不管怎么说,我正在尝试编写一个如下流程的代码: 用户从数据库中进行查询 结果显示在带有jQuery UI的模式窗口中 有一个选项可以在模式窗口中以PDF格式查看此文件 Ajax将获取html并将其发送到pdfajax.php,以使用TCPDF创建PDF Ajax将返回PDF结果 我试过了,但我可能在第3步到第5步上绊倒了。我所能确定的是,我可以通过Ajax传递所需的html代码,如果我不尝试将其打印为PDF格式,而只是将其作为PHP进行响应,那么它就可以工作了。所
<div class="dialog-form" title="Query Dialog">
<br />
<div id="query_result"></div>
<br />
</div>
以及pdfajax.PHP中的PHP
<?php
//$htmlp = $_POST['html'];
//echo '<iframe id="query_result" srcdoc="',$htmlp,'" seamless="true"></iframe>';
require_once 'tcpdf/tcpdf.php';
$method = $_SERVER['REQUEST_METHOD'];
if(strtolower($method) == 'post'){
$pdf = new TCPDF();
$pdf->AddPage();
$html = <<<EOD
Hey
EOD;
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
$pdf->Output('example_001.pdf', 'I');
}
?>
并且对ajax文件没有任何更改。我需要一个如何进行的提示?我根本不知道如何操作iframe标记,互联网教程似乎也帮不上我的理解。使用并显示pdf。正如@SubashSelvaraj所建议的,您可以返回pdf文件的链接,然后在模式中创建iframe,并将src设置为pdf链接。我实际上对此一无所知。一旦生成pdf,我不知道它的链接。还是仅仅是pdfajax.php?因为我的概念是,要在html中使用iframe,我必须先下载生成的pdf,然后在iframe的src中引用它。我想我可能错了。有没有一种方法可以生成一个虚拟链接,我不需要把它下载到服务器上,我该怎么做呢。。。通过预先在图像中指定src标记,基本上不对返回的数据做任何处理。虽然现在我的问题是如何将html从jquery移动到pdfajax文件,但我以前可以移动它,但现在它似乎作为GET方法返回,即使我使用的是$.post方法
<?php
//$htmlp = $_POST['html'];
//echo '<iframe id="query_result" srcdoc="',$htmlp,'" seamless="true"></iframe>';
require_once 'tcpdf/tcpdf.php';
$method = $_SERVER['REQUEST_METHOD'];
if(strtolower($method) == 'post'){
$pdf = new TCPDF();
$pdf->AddPage();
$html = <<<EOD
Hey
EOD;
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
$pdf->Output('example_001.pdf', 'I');
}
?>
<div class="dialog-form" title="Query Dialog">
<br />
<div id="query_result"></div>
<iframe src="pdfajax.php" id="report_result"></iframe>
<br />
</div>
$(".dialog-form").dialog({
autoOpen: false,
modal: true,
draggable: true,
resizable: true,
width: 500,
height: "auto",
dialogClass: "no-close",
buttons: {
"PDF": function(){
var html = $('#query_result').html();
$.post('pdfajax.php',
{
html: $('#query_result').html()
},
function( data ){
//$('#report_result').( data );
$('#report_result').prop('src', 'pdfajax.php');
}
);
//alert(html);
},
"Close": function() {
$(this).dialog("close");
}
}
});