为了账号安全,请及时绑定邮箱和手机立即绑定

提交带有空白复选框的HTML表单

提交带有空白复选框的HTML表单

心有法竹 2019-12-02 10:50:18
我有一个HTML表单-使用PHP,我正在将表单的数据发送到MySQL数据库中。表格上某些问题的答案都有复选框。显然,用户不必勾选一个问题的所有复选框。我还想将其他问题(包括广播组)设为可选。但是,如果我提交带有空框,单选组等的表单,则会收到一长串的“未定义索引”错误消息。我该如何解决?谢谢。
查看完整描述

3 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

未提交的单选或复选框元素未提交,因为它们不被视为成功。因此,您必须检查是否使用isset或empty函数发送了它们。


if (isset($_POST['checkbox'])) {

    // checkbox has been checked

}


查看完整回答
反对 回复 2019-12-02
?
绝地无双

TA贡献1946条经验 获得超4个赞

我不时使用这种技术:


<input type="hidden" name="the_checkbox" value="0" />

<input type="checkbox" name="the_checkbox" value="1" />

注意:在不同的服务器端语言中,这会有不同的解释,因此如有必要,请进行测试和调整。感谢SimonSimCity的提示。


查看完整回答
反对 回复 2019-12-02
?
Cats萌萌

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>


查看完整回答
反对 回复 2019-12-02
  • 3 回答
  • 0 关注
  • 709 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信