提交带有未选中复选框的表单时,我收到"未定义索引"错误.除了对每个发布的值进行"isset"或"empty"检查之外,还有其他方法吗?
我看过这个问题并且很难相信这是唯一的解决方案.
下面是一些示例代码:编辑:请注意,这些不是表列的实际名称; 它们的名称是唯一的(如"postAddress,displayPhone,student等)
您可以编写一个函数来检查是否选中了复选框:
function checkbox_value($name) {
return (isset($_POST[$name]) ? 1 : 0);
}
Run Code Online (Sandbox Code Playgroud)
现在在您的查询中调用该函数,如下所示:
$sql = 'UPDATE table SET '.
'checkbox1 = '. checkbox_value('checkbox1') .','.
'checkbox2 = '. checkbox_value('checkbox2') .','.
'checkbox3 = '. checkbox_value('checkbox3') .','.
'checkbox4 = '. checkbox_value('checkbox4') .','.
'checkbox5 = '. checkbox_value('checkbox5') .','. "LIMIT 1";
Run Code Online (Sandbox Code Playgroud)
如果要使用开/关复选框,可以在写入复选框之前写入隐藏值.
<input type="hidden" name="checkbox1" value="no" />
<input type="checkbox" name="checkbox1" value="yes" />
Run Code Online (Sandbox Code Playgroud)
这将始终返回一个值,否则(默认情况下除非选中复选框,否则为默认值)或是.
您可以使用FILTER_VALIDATE_BOOLEAN使用过滤器函数验证输入.
如果你为此编写一个函数,比如formCheckbox($ name),它有更简单的选项,值(值'on'表示默认选中复选框),属性等.
| 归档时间: |
|
| 查看次数: |
12907 次 |
| 最近记录: |