使用html2pdf从PHP中的表单发布数据作为PDF文件

时间:2016-11-12 15:14:53

标签: javascript php pdf html2pdf

我正在尝试从表单帖子中获取一些数据并在同一页面上使用html2pdf将其输出为PDF文件。但是,当尝试将表单数据发布到同一页面时,它不会打开PDF文件,可能是因为PHP文件的其余部分将在if($ _ POST)之后。如果我删除“else”部分中的代码,则可以下载。

这有什么办法吗?或者更好的方法呢?我用javascript创建表单数据所以我需要以某种方式将其发布到php,但下面的代码只是一个简化的示例。如果解决方案是jquery / javascript / php对我没关系,但我基本上需要在用户操作后将数组发布到此PDF输出。

<?php
if(isset($_POST['sweets'])){

// get the HTML
ob_start();
?>
<page backtop="35mm" backbottom="20mm" backleft="15mm" backright="15mm">
    <div id="p1-content">
        <h3>Mer test</h3>
        <p>Normalement une valeur devrait vous être demandée, puis affichée</p>
    </div>
</page>

<?php
// PDF script to execute
$content = ob_get_clean();
// convert to PDF
require_once(dirname(__FILE__).'/html2pdf/vendor/autoload.php');

try
{
    $html2pdf = new HTML2PDF('P', 'A4', 'en');    
    $html2pdf->writeHTML($content, isset($_GET['vuehtml']));
    $html2pdf->Output('testprint.pdf','D');
}

catch(HTML2PDF_exception $e) {
    echo $e;
    exit;
}
?>
<?php
} else {
?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $(".sendData").click(function () {
        var str = "";
        $("select[name='sweets'] option:selected").each(function () {
            str += $(this).text() + " ";
        });
        jQuery.ajax({
            type: "POST",
            data:  $("form#a").serialize(),
            success: function(data){
                jQuery(".res").html(data);
                $('#test').html(data);
            }
        });
        var str = $("form").serialize();
        $(".res").text(str);
    });
});
</script>
<div id="test"></div>
<form id="a" action="" method="post">
    <select name="sweets" >
        <option>Chocolate</option>
        <option selected="selected">Candy</option>
        <option>Taffy</option>
        <option>Caramel</option>
        <option>Fudge</option>
        <option>Cookie</option>
    </select>
</form>
<button class="sendData">Send Data</button>
<?php
}
?>

1 个答案:

答案 0 :(得分:0)

我能够使用example09 on the HTML2PDF page发布到页面本身,我只希望示例更好一些,所以我可以立即看到它。