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

如何在表单提交后在php中重新加载页面,php,javascript,jquery,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"

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

下面是示例代码。 比如说

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

客户名称*
地点
........
var计数器=1;
功能检查计数器()
{
如果(计数器==1)
{
警报(“请输入产品详细信息”);
返回false;
}
打开(“”,“发票”,“宽度=650,高度=800,状态=yes,可调整大小=yes,滚动条=yes”);
返回true;
}
在我的示例中,页面将被重定向到inv_rec.php(在新窗口中打开),其中包含从mysql获取的动态生成的数据,用户需要在mysql中打印这些数据。
我想清除在上一个窗口(显示发票表单的窗口,即用户填写数据以生成发票)中打开的所有表单数据。

您可以使用javascript或jquery实现这一点

在javascript中

document.getElementByName("invoice").reset();
在jquery中

$("#formId").reset();
将id添加到表单中以使用此

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

提交表单后重定向页面

header('location:redirect.php')

或者取消设置表单中的变量

在Jquery中:


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

由于有人可以禁用javascript并仍然发布您的表单,我认为依靠JS为您进行清理是不安全的


我建议你调查一下这个问题

你的问题不太清楚?您是否正在清除表单字段以便为另一组新的输入做好准备?如果是这样,您可以在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>

var计数器=1;
功能检查计数器()
{
如果(计数器==1)
{
警报(“请输入产品详细信息”);
返回false;
}
$('#formid).reset();//假设您使用的是jquery
打开(“”,'invoices','width=650,height=800,status=yes,resizable=yes,scrollbars=yes');
返回true;
}

感谢Deepu的快速回复。我在发布问题之前尝试过它,但对我无效。实际上,在提交后的代码中,生成的发票将在新选项卡中打开。我关心的是在“生成发票”时清除发票生成过程中输入的所有表单数据单击按钮。我无法重定向页面,因为用户需要打印将在新选项卡中打开的发票。我关心的是在“生成发票”时自动清除发票生成期间输入的所有表单数据按钮被单击。感谢您的快速响应。是的,我想清除表单字段,以便为另一组新的输入做好准备。我尝试了它,但它没有运行,我正在使用jquery。您在#formid中使用了什么?您要用表单的id替换它。再次查看您的代码,我发现您的formid是inv。所以请执行以下操作:“$('#inv').reset()”。如果尝试使用firefox无法正常工作,请检查错误控制台中的投诉…rgdsI在window.open in code之前放置了相同的代码,即`$('#inv').reset()。它不工作,firefox浏览器的firebug控制台中没有报告错误。我是说firefox内置错误控制台…使用CRTL+SHIFT+J快捷方式打开它…如果它包含太多信息,请清除它并重新加载您的页面,然后再次调用它。它将为您提供哪一个javascript调用行为不端的线索