【问题标题】:How does a HTML form identify itself in POST header?HTML 表单如何在 POST 标头中标识自己?
【发布时间】:2009-06-14 01:24:09
【问题描述】:

php页面称为page.php;此页面上有 2 个提交表单:form1 和 form2。当按下表单的提交按钮之一时,HTML 标头中的什么内容会标识提交的是哪个表单?

【问题讨论】:

    标签: php post header


    【解决方案1】:

    我不相信它会发布任何身份证明。让您的代码知道发布哪个表单的最简单方法是在每个表单中放置一个隐藏字段,以标识如下表单:

    <form id="form1">
      <input type="hidden" name="formName" value="form1"/>
      <input type="submit" value="submit" />
    </form>
    <form id="form2">
      <input type="hidden" name="formName" value="form2"/>
      <input type="submit" value="submit" />
    </form>
    

    【讨论】:

    • 您还可以为提交按钮指定名称并使用该名称来识别表单。
    【解决方案2】:

    正如 che 对 Jacob 回答的评论中提到的:

    <form id="form1">
      <input type="submit" value="submit" name="form1" />
    </form>
    <form id="form2">
      <input type="submit" value="submit" name="form2" />
    </form>
    

    然后在你的表单处理脚本中:

    if(isset($_POST['form1']){
        // do stuff
    }
    

    这是我在不通过 ajax 提交表单时使用的。

    【讨论】:

      【解决方案3】:

      form 标签的action 属性呢?

      我猜你可以在不同的form 实例中指定不同的action 属性(每个属性都有不同的URI 值)。

      此外,为提交按钮添加 name 属性 +1:如果这样做,则“成功”(即点击)提交按钮的名称将添加到名称加值字符串中表单返回到服务器。

      【讨论】:

        【解决方案4】:

        “rpflo”使用的方式不识别表单。这里的$_POST['form1'] 对应于name="form1" 的输入,而不是id="form1" 的表单。

        恕我直言,有两种合理的方法可以在一个页面上识别两个表单。 首先是通过“action”属性添加一个 GET 变量,例如action="mypage.php?form_id=1"。 第二种更实用的方法是将所有输入命名为数组。例如:

        <form>
          <input name="form1[first_name]" />
          <input name="form1[last_name]" />
        </form>
        <form>
          <input name="form2[first_name]" />
          <input name="form2[last_name]" />
        </form>
        

        然后你有 $_POST['form1']['first_name'] 等等..

        【讨论】:

          猜你喜欢
          • 2021-10-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-18
          • 2016-11-20
          • 2018-03-03
          相关资源
          最近更新 更多