如何处理页面中的所有单选按钮?
<input type="radio" name="radio_1" value="some" />
<input type="radio" name="radio_1" value="some other" />
<input type="radio" name="radio_2" value="some" />
<input type="radio" name="radio_2" value="some other" />
此按钮将动态添加,因此我不知道单选按钮名称(以及按钮的数量)。有没有办法获得所有无线电值,使用for循环或类似的东西?感谢
答案 0 :(得分:2)
使用foreach
循环
<?php
foreach ( $_POST as $key => $val )
echo "$key -> $val\n";
?>
$ key将是所选选项的名称,$ val,即值。
答案 1 :(得分:1)
由于浏览器只会将您的所有输入更改为HTTP格式的表单数据,因此无法通过单选按钮,文本框或其他输入来判断数据是什么。
如果命名约定与您的示例相同,则只需循环直到找不到值:
<?
for ($idx = 1; $idx <= 1000; $idx++) {
if (isset($_REQUEST["radio_$idx"])) {
// handle value
}
}
?>
编辑或者,如果您的表单是动态生成的,您可以将其创建的单选按钮数写为表单中的隐藏字段。
如果您能够更改正在生成的表单,则可以编写一个隐藏的输入,该输入提供了您要查找的所有单选按钮的列表。在编写单选按钮时,只需创建一个以分号分隔的列表,列出您创建的所有名称。完成后,将其写入隐藏的输入。像这样:
在源表单上:
<input type="hidden" name="radio_button_list" value="some_value;other_value" />
然后在你的处理程序中:
<?
$list = explode(';', $_REQUEST['radio_button_list']);
foreach ($list as $name) {
$value = $_REQUEST[$name];
// handle name & value
}
?>
答案 2 :(得分:0)
jheddings的例子说明了一切。但是,您永远不会获得所有按钮的名称/值 - 只是每组中选定的按钮。如果您需要字面上所有值,则必须使用Javascript。