代码之家  ›  专栏  ›  技术社区  ›  chrizonline

多个提交按钮

  •  0
  • chrizonline  · 技术社区  · 15 年前

    我有一个带有多个提交按钮的表单帖子。我明白要想让这个生效,我必须让他们用不同的名字。

    但是,我想保持名字不变,因为我想用一个脚本来处理帖子。

    我不确定是否有其他方法,但我知道可以使用javascript。但是,如何获取与按钮关联的隐藏值的值,因为现在它们只有一个??

    我的例子如下:

    <form method="Post" action="file.php">
    
    <input type="hidden" name="removeid" value="1" />
    <input type="submit" id="btnremove" name="btnremove" value="Remove" inputbutton/>
    
    <input type="hidden" name="removeid" value="2" />
    <input type="submit" id="btnremove" name="btnremove" value="Remove" inputbutton/>
    
    <input type="hidden" name="removeid" value="2" />
    <input type="submit" id="btnremove" name="btnremove" value="Remove" inputbutton/>
    
    </form>
    
    6 回复  |  直到 15 年前
        1
  •  3
  •   Brad    15 年前

    您的隐藏值与按钮完全没有关联。此外,不能对多个元素的ID属性使用相同的值。

    在这种情况下,我通常做的是检查邮政编码。给他们起个名字 remove_1 , remove_2 ,等等。然后你可以搜索你的POST vars,从 remove_ (或者你选择的任何格式。。。不要把它用于其他事情),然后你就可以解析出你要删除的内容的ID。

        2
  •  2
  •   Jake    15 年前

    你可以用3种不同的形式,所有的动作都一样。不需要JavaScript。

    <form method="Post" action="file.php">
    <input type="hidden" name="removeid" value="1" />
    <input type="submit" value="Remove" inputbutton/>
    </form>
    
    <form method="Post" action="file.php">
    <input type="hidden" name="removeid" value="2" />
    <input type="submit" value="Remove" inputbutton/>
    </form>
    
    <form method="Post" action="file.php">
    <input type="hidden" name="removeid" value="2" />
    <input type="submit" value="Remove" inputbutton/>
    </form>
    
        3
  •  0
  •   Cahit    15 年前

    可以使用两种不同的方法:

    1. 如果必须显示3个不同的按钮,请使用单独的 <表格> 每一个包装。将每个“removeid”元素以不同的形式放置。
    2. 否则,只需要一个按钮,提交时,在发布表单之前,使用JavaScript设置单个隐藏输入元素的值。通过Google的“javascript+form+post”查询,您可以很容易地找到这方面的示例代码。
        4
  •  0
  •   Shadow Wizard    15 年前

    可以 如果一个表单中有多个提交按钮共享同一个名称,则最初的假设是错误的。

    以下代码完全有效,并且 价值 单击的“提交”按钮将与其名称一起传递:

    <form action="TestZone.html" method="GET">
    <input type="submit" name="MySubmit" value="First" /><input type="submit" name="MySubmit" value="Second" /><input type="submit" name="MySubmit" value="Third" />
    </form>
    

    不能有多个具有相同ID的元素,但表单元素的相同名称是通用和有效的。

        5
  •  0
  •   chrizonline    15 年前

    嗨,我已经按照布拉德的解决方案解决了我的问题。为了得到POST var,我做了如下操作:

    //Check if Remove btn is clicked
      $isClickRemove = false;
      $cid = "";
      foreach($_POST as $k=>$v){
        $pos = strpos($k,"btnremovecart_");
    
        if($pos !== false){
          $pos2 = strpos($k,"_"); //2nd pos to get cartID
          $cid = substr($k,$pos2+1);
          $isClickRemove = true;
          break;
        }
      }
    

    我的html如下所示:

    <input type="submit" id="btnremovecart_11" name="btnremovecart_11" value="Remove" />
    

    希望这有帮助=)

        6
  •  -1
  •   Femaref    15 年前

    你不能,因为无法区分不同的字段。