0

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

下面是示例代码。例如

    <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

4 回答 4

2

提交表单后重定向页面。

header('location:redirect.php');

或取消设置表单中的变量

在jQuery中:

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

于 2013-07-01T11:51:19.777 回答
0

由于有人可以禁用 javascript 并仍然 POST 您的表单,我认为依靠 JS 为您进行清理并不是一个安全的选择。

我建议查看post/redirect/get 模式

于 2013-07-01T11:51:49.840 回答
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>
于 2013-07-15T08:54:52.837 回答
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">
于 2013-07-01T11:45:44.487 回答