所以,我的$_POST
数组中有几个复选框,我想知道它们是否被选中。然后我想打印出已检查的那些。我怎么会这样做?
答案 0 :(得分:3)
通常,我们使用复选框的方式是,使用如下的阵列名称:
<input type="checkbox" name="check[]" value="check 1" /> check<br />
<input type="checkbox" name="check[]" value="check 2" /> check<br />
<input type="checkbox" name="check[]" value="check 3" /> check<br />
通过这种方式,我们可以使用以下方式轻松确定是否有人选中了我们的复选框:
if( isset( $_POST['check'] ))
{
if( count( $_POST['check'] ) > 0 )
{
echo "checked value are: " . implode(", ", $_POST['check']);
}
}
这主要是因为浏览器不发送未检查的复选框值。
答案 1 :(得分:0)
您无论如何都只能打印checked
复选框,因为浏览器不会提交空(未选中)复选框:
foreach ($_POST as $key=>$val)
{
echo $key ." :: ".$val."<br/>";
}
答案 2 :(得分:0)
这在@ iHaveacomputer的答案上略有扩展。
仅选中复选框&amp;无线电被放入$_POST
或$_GET
。
但是,您可以拥有一个复选框(或其他类型的输入)数组,因此如果您在输入的名称中使用括号,则应检查该值是否为数组。
foreach ($_POST as $input_name => $value_s)
{
if (is_array($value_s))
{
foreach ($value_s as $index => $value)
{
echo "$input_name[$index]::$value<br />";
// note that this literally prints the input_name, brackets, and index)
// using braces will just print the value
}
}
else
{
echo "$input_name::$value_s<br />";
}
}