我正在尝试从表单帖子中获取一些数据并在同一页面上使用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
}
?>