如何在表单提交后在php中重新加载页面

时间:2013-07-01 11:43:26

标签: php javascript jquery

单击生成发票按钮时,将在新窗口中打开发票。

以下是示例代码。 例如

    <form name="invoice" action="inv_rec.php" method="post" id="inv" target="invoices" onsubmit="return check_counter();" >
    <table>
    <tr>
       <td>
          <label for="cusname"><strong>Customer Name*&nbsp;</strong></label>
          <input type="text" size="20" name ="cusname" value="" id="Customername"     required/>
       </td>
       <td>
           <label for="for_place"><strong>Place</strong></label>
           <input type="text" size="20" name ="for_place" value=""  id="for_place" />
       </td>
    </tr>
    ........
    <tr>
        <td>
            <input type="submit" value="Generate Invoice" name="submit" id="sub">
        </td>
     </tr>
  </table> 
</form>

<script>
var counter = 1;
function check_counter()
{
 if(counter == 1)
{
 alert("Please enter the product details");
 return false;
}
 window.open('', 'invoices', 'width=650,height=800,status=yes,resizable=yes,scrollbars=yes');

return true;
}
</script>

在我的示例中,页面将被重定向到inv_rec.php(在新窗口中打开),其中包含从mysql获取的动态生成的数据,用户需要在其中打印它。 我想清除在上一个窗口中打开的所有表单数据(显示发票表单,即用户填写数据以生成发票)。

4 个答案:

答案 0 :(得分:2)

提交表单后重定向页面。

header('location:redirect.php');

或取消设置表单中的变量

在Jquery中:

$('#form_id')[0].reset();

答案 1 :(得分:0)

您可以使用javascript或jquery来实现此目的

在javascript中

document.getElementByName("invoice").reset();

在jquery中

$("#formId").reset();

在表单中添加ID以使用此

<form name="invoice" id="invoice" action="generate_invoice.php" method="post" target="_blank">

答案 2 :(得分:0)

由于某人可能只是禁用了javascript并且仍在发布您的表单,我认为依靠JS为您进行清理是不安全的。

我建议您查看post/redirect/get pattern

答案 3 :(得分:0)

你的问题不太清楚?你是否正在清除表单字段,以便为另一组新输入做好准备?如果是这样,你可以在调用java脚本中的window.open()方法之前调用reset。 像这样的东西:

<script>
var counter = 1;
function check_counter()
{
 if(counter == 1)
   {
      alert("Please enter the product details");
       return false;
    }
  $('#formid).reset();  //assuming you are using jquery
 window.open('', 'invoices','width=650,height=800,status=yes,resizable=yes,scrollbars=yes');

return true;
}
</script>