【问题标题】:two inputs in same form are conflicting相同形式的两个输入冲突
【发布时间】:2014-01-22 11:37:24
【问题描述】:

我有一个包含表格的表单。在表格的每一行中有两个输入。其中之一是用于更新购物车中商品数量的文本输入。另一个输入是图像。单击时应删除该项目。如果您更新文本单元格中的金额并点击返回,它会尝试更新并删除它。我已经转储了变量,并且 $_POST 数组包含以下两个条目:

关键:总结

VAL: 数组(3) { ["ccbna007"]=> 字符串(1) "5" ["ccbna001"]=> 字符串(2) "10" ["ccbna002"]=> 字符串(2) " 10" }

键:删除

VAL: 数组(1) { ["ccbna007"]=> 字符串(4) "-302" }

谁能帮我弄清楚我的标记是如何影响我提交的变量的,以及如何修复错误?请参阅下面的标记。如果需要更多信息,请告诉我。

...在表格内的表格内

<form action="distro.php" method="post">

    <tr>
    <td>S/T LP</td>
    <td><input type="text" value="10" name="summary[ccbna001]" size="2"></td>
    <td>10.00</td>
    <td>
      <a>
          <input alt="Remove item from your cart" type="image" title="Remove Item" src="img/delete.gif" name="delete[ccbna001]" height="10px" width="10px">

      </a>
    </td>
  </tr>

...更多类似的行...

</form>

【问题讨论】:

    标签: php html forms post input


    【解决方案1】:

    当您按下 enter 时,您将提交所有输入,因为它们属于同一表单。如果您希望将它们分开处理,请制作两个表单并将两个输入分开。

    【讨论】:

    • 我希望不是这样。所以这意味着每个输入都需要自己的形式...
    • 我相信是这样,除非你使用一些 javascript/ajax。然后你可以这样做: onsubmit="postFunction(); return false;"在 post Function 中,从数量输入中获取值并仅发送。
    【解决方案2】:

    将图像输入更改为简单的图像标签,然后用链接将其括起来。 该链接应指向将从您的数据库或会话中删除一行的脚本。

    【讨论】:

      【解决方案3】:

      你应该有这样的每一行的表格:

      <tr>
          <form action="distro.php" method="post">
              <td>S/T LP</td>
              <td><input type="text" value="10" name="summary[ccbna001]" size="2"></td>
              <td>10.00</td>
              <td>
                  <a>
                      <input alt="Remove item from your cart" type="image" title="Remove Item" src="img/delete.gif"
                             name="delete[ccbna001]" height="10px" width="10px">
      
                  </a>
              </td>
      
              <input type="sumit" value="submit">
          </form>
      </tr>
      

      每行以此类推...

      【讨论】:

        【解决方案4】:

        如果我是你,我会这样做:

        <form action="distro.php" method="post">
        <table>
            <tr>
            <td>S/T LP</td>
            <td>
               <input type="text" value="10" name="summary[ccbna001]" size="2">
            </td>
            <td>10.00</td>
            <td>
              <a href="delete.php?id=123" id="delete[ccbna001]" >
                  <img src="img/delete.gif" alt="Remove item from your cart" 
                        height="10px" width="10px"/>
              </a>
            </td>
          </tr>
          <tr><td><input type="sumit" value="submit"></td></tr>
        </table>
        </form>
        

        因为图片不是输入,所以我会通过锚标签调用删除脚本。

        【讨论】:

        • developer.mozilla.org/en-US/docs/Web/HTML/Element/input 在类型 attr 的定义下:“图形提交按钮”
        • 是的,您可以将输入转换为图像,但这就是为什么它会发布您的表单,这在您的情况下是个问题。我的朋友,多种形式真的很混乱的解决方案
        • @eightArmCode 例如,如果您希望提交按钮是一个图像,那就没问题了。但不是你想要达到的目标。
        • 我确实认为使用 get 方法删除链接是最干净的方法。现在我想知道删除链接是否需要自己的表格?由于它们是具有不同目的地的提交按钮,我可以在其他地方创建一个表单并通过 id 关联它们吗?
        • 不,您不需要额外的表格,如果您只是链接到delete.php,那么您将能够阅读那里的id
        猜你喜欢
        • 2012-12-29
        • 2011-10-14
        • 2015-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多