我有一个带有多个提交按钮的表单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>
答案 0 :(得分:3)
您的隐藏值根本与按钮无关。此外,您不能对多个元素的ID属性使用相同的值。
在这种情况下我通常做的是检查POST变量。将它们命名为remove_1
,remove_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)
可以使用两种不同的方法:
答案 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)
你不能因为没有办法区分不同的领域。