2016-11-12 8 views
0

Ich versuche, einige Daten aus einem Formular zu erhalten und es in einer PDF-Datei mit html2pdf auf der gleichen Seite ausgeben. Wenn Sie jedoch versuchen, die Formulardaten auf derselben Seite zu veröffentlichen, wird die PDF-Datei nicht geöffnet, wahrscheinlich weil der Rest der PHP-Datei nach dem if ($ _ POST) steht. Wenn ich den Code im "else" Teil entferne, wird er gut heruntergeladen.Verwenden von html2pdf zum Drucken von Daten aus dem Formular Post in PHP als PDF-Datei

Gibt es einen Weg um dies zu umgehen? Oder ein besserer Weg? Ich erstelle Formulardaten mit Javascript, also muss ich es irgendwie zu php posten, aber der Code unten ist nur ein vereinfachtes Beispiel. Für mich ist es egal, ob die Lösung jquery/javascript/php ist, aber ich muss nach der Benutzeraktion im Wesentlichen ein Array an diese PDF-Ausgabe senden.

<?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 
} 
?> 

Antwort

0

konnte ich example09 on the HTML2PDF page auf der Seite selbst, um es zu benutzen, ich möchte nur die Beispiele etwas besser vorgestellt wurden, so konnte ich weg von diesem Recht gesehen haben.

Verwandte Themen