2014-10-07 56 views
0

我有一個表單,我可以提交到SQL或轉換爲PDF下載,但我沒有運氣讓它做到這一點。發送表單數據到SQL然後PDF

希望的行爲 - >表單被提交 - >數據發送到SQL - >用戶被定向到已填充的PDF下載。

當前的行爲 - >表單提交 - >數據發送到SQL - >沒有什麼事情發生

這裏的java代碼發送形式多種來源。理想情況下,我希望提交表單,然後將用戶(不帶iframe)重定向到pdf頁面。

<script language="javascript"> 
function OnButton1() 
{ 
    document.Form1.action = "/sqlsubmit.php" // First target 
    document.Form1.target = "iframe1"; // Open in a iframe 
    document.Form1.submit();  // Submit the page 
    document.Form1.action = "/returnslip.php" // Second target 
    document.Form1.target = "iframe2"; // Open in a iframe 
    document.Form1.submit();  // Submit the page 
    return true; 
} 
</script> 

<div style="visibility:hidden"> 
<iframe NAME="iframe1" WIDTH="40" HEIGHT="40"></iframe> 
<iframe NAME="iframe2" WIDTH="40" HEIGHT="40"></iframe> 
</div> 

回答

0

更好的方式來做到這一點是

  1. 表單提交,發送阿賈克斯到服務器
  2. 數據發送到SQL
  3. 生成的PDF文件,並保存在服務器
  4. 服務器發送迴應鏈接到PDF
  5. 用戶重定向由李NK查看,然後下載PDF

HTML

<form method="POST" onsubmit="return jFormer(this)"> 
... 
</form> 

JS

function jFormer(form) { 

    var $form = $(form); 
    var info = $form.serialize(); 

    $.ajax({ 
      type: 'POST', 
      url: 'http://your-php.com', // replace !!! 
      data: info, 
      success: function(link) { 
       window.location = link; // Link to PDF, server responce 
      } 
    }); 

    return false; 

} 

PHP

if (isset($_POST['var_name1'])) { 

    //1. Insert to DB all you need 
    //2. Create PDF and save it 

    echo $link; // Link to PDF 

} 

注意

  • 用自己的方式插入到數據庫
  • 您可以通過外部服務API從HTML創建PDF(如 pdfcrowd
  • 製作PDF需要時間,大約分鐘,同樣,ajax將幫助您在服務器上處理時向用戶提供一些反饋。
  • 您需要在此解決方案中使用jQuery。
相關問題