我有一个有多个表单标签的php页面。每个表单都处理一个特定的选项卡。它只是一个搜索,但每个选项卡都提供日期,数字或名称的搜索。
每个表单标签都有不同的名称....如何知道结果页面中提交的表单是否相应地自定义数据库搜索?
是$ _POST还是$ _REQUEST?
<form name="invoice" action="result.php" method="POST"><br><br>
<form name="customer" action="result.php" method="POST"><br><br>
<form name="customer" action="result.php" method="POST"><br><br>
上面的每一个都包含一个带有输入框和提交按钮的表。
谢谢,
答案 0 :(得分:5)
我建议为每个表单添加一个隐藏的输入字段,指定表单名称:
<input type="hidden" name="formname" value="invoice" />
然后你可以使用$ _POST ['formname']变量来获取它。
答案 1 :(得分:1)
一种方法是在每个表单中存储不同的隐藏输入,然后检查服务器端的隐藏输入以确定它是哪种形式。
<input type="hidden" name="formname" value="invoice" />
<input type="hidden" name="formname" value="customer" />
<input type="hidden" name="formname" value="customer2" />
答案 2 :(得分:1)
您可以在每个提交按钮中添加一个名称和值,如下所示:
<form>
<input type="submit" name="action" value="search_invoice" />
...
</form>
<form>
<input type="submit" name="action" value="search_customer" />
...
</form>
然后在你的php
switch($_POST['action']) {
case 'search_invoice':
// ur code
break;
case 'search_customer': default:
// ur code
break;
}
请注意,旧版本的firefox没有正确提交密钥=&gt;值对输入类型提交。
我通常使用的另一个解决方案是放置<input type="hidden" name="action" value="your_customAction" />
答案 3 :(得分:0)
name
属性被发送到服务器。"date"
用于日期搜索等?答案 4 :(得分:-2)
您应该在所有表单中使用不同的提交按钮名称。
编辑: -
如果每个表单中只有一个元素,那么最好的选择是使用@ Petter的解决方案,因为IE有单个文本元素的错误 - 如果您使用回车键提交表单,那么提交按钮将不会设置$_POST
。
但是如果表单中有多个元素,您可以考虑为提交按钮选择不同的名称。