多个提交按钮

时间:2010-11-12 22:06:14

标签: php javascript

我有一个带有多个提交按钮的表单POST。我知道要让它工作,我必须让它们具有不同的名称。

然而,我想保持名称相同,因为我想使用单个脚本处理POST。

我不确定是否有其他方式,但我知道可以使用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 个答案:

答案 0 :(得分:3)

您的隐藏值根本与按钮无关。此外,您不能对多个元素的ID属性使用相同的值。

在这种情况下我通常做的是检查POST变量。将它们命名为remove_1remove_2等等。然后,您可以搜索POST变量,查找以remove_开头的所有变量(或您选择的任何格式...不要将它用于其他事情)然后你可以解析你想要删除的ID。

答案 1 :(得分:2)

您可以随时使用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>

答案 2 :(得分:0)

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

  1. 如果您必须显示3个不同的按钮,请为每个按钮使用单独的&lt; form&gt; 包装。将每个“removeid”元素放在不同的表单中。
  2. 否则,只需一个按钮,在提交时,使用JavaScript在发布表单之前设置单个隐藏输入元素的值。您可以使用Google查询“javascript + form + post”轻松找到示例代码。

答案 3 :(得分:0)

可以有一个表单,其中有多个提交按钮共享同一个名称,您的初始假设是错误的。

以下代码完全有效,点击的提交按钮的将与其名称一起传递:

<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的元素,但表单元素的相同名称是通用且有效的。

答案 4 :(得分:0)

您好我已按照Brad解决方案解决了我的问题。得到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" />

希望这有助于=)

答案 5 :(得分:-1)

你不能因为没有办法区分不同的领域。