将表单数据发送到SQL然后PDF

时间:2014-10-07 20:51:40

标签: php sql forms

我有一个表单,我可以提交给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>

1 个答案:

答案 0 :(得分:0)

更好的方法是

  
      
  1. 表单由ajax提交并发送到服务器
  2.   
  3. 发送到SQL的数据
  4.   
  5. 生成PDF文件并将其保存在服务器上
  6.   
  7. 服务器发送响应链接到PDF
  8.   
  9. 用户通过链接重定向以查看和下载PDF
  10.   

<强> 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。