我正在尝试从表单中的所有(已选中和未选中)框中获取值。 我知道未经检查的值通常不会发送到服务器。 我搜索过并发现了这个:
<form action="<?php echo $_SERVER[PHP_SELF] ?>" method="post">
<input type="checkbox" id="1" name="box[]" value="1" />
<input type="checkbox" id="2" name="box[]" value="2" />
<input type="checkbox" id="3" name="box[]" value="3" />
<input type="submit" value="Submit" />
</form>
<?php
// $box = $_POST['box'];
$foo = array();
for ($i = 1; $i <= 3; $i++) {
$foo[$i] = in_array($i, $_POST['box']) ? 'on' : 'off';
}
print_r ($foo);
?>
输出结果为:
Array ( [1] => off [2] => on [3] => off )
这是一个非常有趣的解决方案,但它只能(1)用于检查,关闭(0)用于未选中的框,而我想从表单中获取数值。 作为输出,我希望有一个包含已检查和未检查值的数组。 我怎样才能最好使用上面的代码作为主干? 请帮忙。
我想详细说明我的问题。如果我有一个下面的表格:
<form action="" method="post">
<input type = "checkbox" id = "254" name = "voc2[]" value= "8089" />yes
<input type = "checkbox" id = "255" name = "voc2[]" value= "8148" />no
<input type = "checkbox" id = "256" name = "voc2[]" value= "8207" />maybe
<input name="submit" type="submit" />
</form>
如果未选中,可以在同一页面上获取其中一个值(例如8089)吗? 我试过了:
<?php
if (isset($_POST['submit'])) {
$voc2 = $_POST['voc2'];
echo '<br> $voc2 = '. $voc2[0];
}
?>
但它仍然只显示选中的值。