3 回答
TA贡献1785条经验 获得超4个赞
未提交的单选或复选框元素未提交,因为它们不被视为成功。因此,您必须检查是否使用isset或empty函数发送了它们。
if (isset($_POST['checkbox'])) {
// checkbox has been checked
}
TA贡献1946条经验 获得超4个赞
我不时使用这种技术:
<input type="hidden" name="the_checkbox" value="0" />
<input type="checkbox" name="the_checkbox" value="1" />
注意:在不同的服务器端语言中,这会有不同的解释,因此如有必要,请进行测试和调整。感谢SimonSimCity的提示。
TA贡献1805条经验 获得超9个赞
这是一个使用javascript的简单解决方法:
在提交包含复选框的表单之前,请将“关闭”的复选框设置为0并选中它们以确保它们已提交。例如,这适用于复选框数组。
/////示例//////
给定一个id =“ formId”的表单
<form id="formId" onSubmit="return formSubmit('formId');" method="POST" action="yourAction.php">
<!-- your checkboxes here . for example: -->
<input type="checkbox" name="cb[]" value="1" >R
<input type="checkbox" name="cb[]" value="1" >G
<input type="checkbox" name="cb[]" value="1" >B
</form>
<?php
if($_POST['cb'][$i] == 0) {
// empty
} elseif ($_POST['cb'][$i] == 1) {
// checked
} else {
// ????
}
?>
<script>
function formSubmit(formId){
var theForm = document.getElementById(formId); // get the form
var cb = theForm.getElementsByTagName('input'); // get the inputs
for(var i=0;i<cb.length;i++){
if(cb[i].type=='checkbox' && !cb[i].checked) // if this is an unchecked checkbox
{
cb[i].value = 0; // set the value to "off"
cb[i].checked = true; // make sure it submits
}
}
return true;
}
</script>
- 3 回答
- 0 关注
- 709 浏览
相关问题推荐
添加回答
举报