3 回答

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
未提交的單選或復(fù)選框元素未提交,因?yàn)樗鼈儾槐灰暈槌晒?。因此,您必須檢查是否使用isset或empty函數(shù)發(fā)送了它們。
if (isset($_POST['checkbox'])) {
// checkbox has been checked
}

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
我不時(shí)使用這種技術(shù):
<input type="hidden" name="the_checkbox" value="0" />
<input type="checkbox" name="the_checkbox" value="1" />
注意:在不同的服務(wù)器端語言中,這會(huì)有不同的解釋,因此如有必要,請進(jìn)行測試和調(diào)整。感謝SimonSimCity的提示。

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
這是一個(gè)使用javascript的簡單解決方法:
在提交包含復(fù)選框的表單之前,請將“關(guān)閉”的復(fù)選框設(shè)置為0并選中它們以確保它們已提交。例如,這適用于復(fù)選框數(shù)組。
/////示例//////
給定一個(gè)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>
添加回答
舉報(bào)