html php识别表单发布数据

时间:2012-03-15 10:25:58

标签: php html

我有一个有多个表单标签的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>

上面的每一个都包含一个带有输入框和提交按钮的表。

谢谢,

5 个答案:

答案 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)

  1. 应使用GET方法执行搜索,而不是POST
  2. 没有name属性被发送到服务器。
  3. 如果每个标签都提供日期,数字或名称的搜索 - 为什么不相应地搜索字段的名称:"date"用于日期搜索等?

答案 4 :(得分:-2)

您应该在所有表单中使用不同的提交按钮名称。

编辑: -

如果每个表单中只有一个元素,那么最好的选择是使用@ Petter的解决方案,因为IE有单个文本元素的错误 - 如果您使用回车键提交表单,那么提交按钮将不会设置$_POST

但是如果表单中有多个元素,您可以考虑为提交按钮选择不同的名称。