使用Jquery输出文件PDF

时间:2014-10-04 09:56:13

标签: javascript php jquery pdf

我需要你的输出文件pdf和jquery的帮助或建议。我有输出文件的问题因为pd​​f文件没有出来。这个脚本jquery和html:

<script>
$("#msg").hide();
$("button").click(function() {
    var subject = $("#subject").val();
    var client = $("#client").val();

    $.ajax ({
        url: "http://localhost/report/fpdf_report.php",
        type: "POST",
        data: { subject: subject, client: client },
        success: function(data) {
            $("#msg").html(data);
            $("#msg").fadeIn("slow").delay(2000);
        },
        error: function(xhr) {
            alert(xhr+"error");
        }
    });
});
</script>

<input type="text" id="subject" /> <input type="text" id="client" /> <input type="text" id="client" /> <button>PDF</button> <br /> <div id="msg"></div>

所以对于脚本php转换pdf:

<?php
$subject = $_POST['subject'];
$client = $_POST['client']; 
require ('fpdf/fpdf.php');
$pdf = new FPDF();
$pdf -> AddPage();
$pdf -> SetFont('Arial','B',20);
$pdf -> Cell(40,10,$subject);
$pdf -> Cell(50,20,$client);
$pdf -> Output();
?>

1 个答案:

答案 0 :(得分:0)

您的php脚本的结果是PDF文件,因此您无法使用div。

您需要object元素,例如:

<object id="msg" type="application/pdf" data="test1.pdf">
Unable to open the PDF file.
</object>

并且您需要将PDF结果保存在文件中,如下所示:

$filename = '/path/of/my/file/test.pdf';
$pdf -> Output($filename, 'F');
echo $filename;

因此,使用JQuery,您需要更改对象元素的de data属性,以及Ajax POST的结果(结果将是PDF文件的名称)。

$.ajax ({
        url: "http://localhost/report/fpdf_report.php",
        type: "POST",
        data: { subject: subject, client: client },
        success: function(data) {
            $("#msg").attr("data", data);
        },
        error: function(xhr) {
            alert(xhr+"error");
        }
    });