这是我的剧本:
HTML代码:
<script>
function pickIt(pId){
if(document.getElementById(pId).checked==true){
document.getElementById(pId).checked=false;
}else{
document.getElementById(pId).checked = true;
}
submitForm();
return true;
}
</script>
<img src="images/bagua-square.gif" border="0" usemap="#Map2" />
<map name="Map2" id="Map2">
<area shape="rect" coords="201,14,284,100" onclick="pickIt(1);" />
<area shape="rect" coords="202,104,284,190" onclick="pickIt(2);" />
<area shape="rect" coords="202,195,284,283" onclick="pickIt(3);" />
</map>
<div style="display:none;">
<input type="checkbox" id="1" name="box[]" />
<input type="checkbox" id="2" name="box[]" />
<input type="checkbox" id="3" name="box[]" />
</div>
PHP代码:
<?php
print_r($_POST['box']);
?>
当我点击框ID 1 pickIt()功能时,将复选框1转为 。 php显示数组(0 =&gt;'on')
但我也希望获得未经检查的复选框值,以便php显示 array(0 =&gt;'on',1 =&gt;'off',2 =&gt;'off')
实际上我希望所有复选框的状态为 和关闭,因为我在mysql数据库中使用这些ID来更新记录状态 或关闭。 请指导。
答案 0 :(得分:4)
复选框如果被选中则发送它们的值,如果不是则不发送。
你应该:
<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" />
因此,值将为1,2和3,而不是on,on和on。然后你就可以知道哪些被检查了,因为它们不会都是一样的。
如果您真的希望数据结构为array(0=>'on', 1=>'off', 2=>'off')
,那么您可以这样做:
$foo = array();
for ($i = 1; $i <= 3; $i++) {
$foo[$i] = in_array($i, $_GET['box']) ? 'on' : 'off';
}
答案 1 :(得分:1)
只有在选中后才会向服务器发送复选框(提交表单时),否则不会提交
也改变了
onclick="pickIt('1');" /
答案 2 :(得分:0)
两个选项:
$_POST
。$_POST
值是未选中的复选框。你可以用for循环来做到这一点。