我使用isset获取使用隐藏类型单击的按钮值...下面是我的代码
<form id="posform" name="posform" action="" method="POST" >
<div><input type="hidden" name="updatepos" value="1" /><input type="submit" value="Update" ></div>
<div><input type="hidden" name="updatepos" value="2" /><input type="submit" value="Update" ></div>
<div><input type="hidden" name="updatepos" value="3" /><input type="submit" value="Update" ></div>
<div><input type="hidden" name="updatepos" value="4" /><input type="submit" value="Update" ></div>
</form>
if (isset($_POST['updatepos'])){
$targetbtnvalue=$_POST['updatepos'];
echo $targetbtnvalue;
}
但是使用下面的代码,无论单击了哪个按钮,它始终会回显最后一个按钮值,即4。
我正在尝试使其与按钮被点击的相应值相呼应... plz指南
答案 0 :(得分:0)
那是因为它是具有相同字段的相同表单。
尝试以下方法:
<form name="posform" action="" method="POST" >
<div><input type="hidden" name="updatepos" value="1" /><input type="submit" value="Update" ></div>
</form>
<form name="posform" action="" method="POST" >
<div><input type="hidden" name="updatepos" value="2" /><input type="submit" value="Update" ></div>
</form>
<form name="posform" action="" method="POST" >
<div><input type="hidden" name="updatepos" value="3" /><input type="submit" value="Update" ></div>
</form>
<form name="posform" action="" method="POST" >
<div><input type="hidden" name="updatepos" value="4" /><input type="submit" value="Update" ></div>
</form>
答案 1 :(得分:0)
所有隐藏的输入名称都是相同的,即 updatepos 不应相同。因此,您可以为隐藏的输入尝试使用不同的名称,或者像updatepos[]
那样将其设置为数组。然后,您将获得$_POST
数组上所有隐藏的输入值,而不仅仅是最后一个。
form id="posform" name="posform" action="" method="POST" >
<div><input type="hidden" name="updatepos[]" value="1" /><input type="submit" value="Update" ></div>
<div><input type="hidden" name="updatepos[]" value="2" /><input type="submit" value="Update" ></div>
<div><input type="hidden" name="updatepos[]" value="3" /><input type="submit" value="Update" ></div>
<div><input type="hidden" name="updatepos[]" value="4" /><input type="submit" value="Update" ></div>
</form>
然后使用PHP尝试这样,
if (isset($_POST['updatepos'])){
$targetbtnvalue=$_POST['updatepos'];
print '<pre>';
print_r($targetbtnvalue);
print '</pre>';
}