2016-11-12 65 views
0

我想从表单文章中获取一些数据并将其输出到PDF2文件中,并在同一页面上使用html2pdf。但是,当试图将表单数据发布到同一页面时,它不会打开PDF文件,这可能是因为PHP文件的其余部分将出现在if($ _ POST)之后。如果我删除“其他”部分中的代码,它会下载正常。使用html2pdf打印PDF格式文件中的数据作为PDF文件

有没有办法解决这个问题?或者更好的方法来做到这一点?我正在用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 
} 
?> 

回答