使用复选框时,我遇到了codeigniter验证过滤器的一些问题。我通常使用numeric
过滤器作为复选框,假设它会过滤0
或1
,但现在我看到有几个失败的实例。
是否有人知道我可以在preg_match
中放置一个正则表达式来验证复选框?
我希望这允许布尔人和其他一些人1
,0
,null
,true
,false
,空等......
答案 0 :(得分:2)
复选框仅返回一个值。它的值(如value=
属性中所示)或'true'。如果未选中该复选框,则不会在POST请求中传递该复选框。因此,要进行验证,您只需要检查两件事:
所以:
if (isset($_POST['checkbox']) && ($_POST['checkbox'] == 'true') { //or whatever value you want
应该很好地完成这个伎俩。除非我在哪种情况下误解了你的问题,否则请发表评论。
答案 1 :(得分:1)
复选框要么有值,要么没有。如果他们有价值他们被检查,如果他们没有,那么他们没有被检查。
正则表达式在这里会严重过度,您只需要检查提交的数据中是否存在复选框。
$checkBoxChecked = isset ($_POST['checkbox_name_goes_here']);