0

如果选中或未选中复选框,我想显示一条消息。我认为使用 if/else 语句会起作用,但是每当未选中复选框时,我都会不断收到一条错误消息,指出我的变量未定义。我该怎么做才能阻止它?

这是我的 html 表单上的代码

  <input type='checkbox' value='1' name='check_box_con'>
  <input type="submit" name="submit" value="Order" />

这是我的 php 文件中的代码

  if ($_POST['check_box'] == '1') {
   print "they want a cookie";
   } else {
      if ($_POST['check_box'] !== '1') {
      print "they do not want a cookie";
      }
   }

这有什么问题?有没有更简单的方法来解决这个问题?

4

4 回答 4

0

你的帖子键应该是 check_box_con

$_POST['check_box_con']
于 2013-10-29T04:12:04.600 回答
0

表单提交时name属性将是$_POST数组的key。所以必须使用$_POST数组中的key才能获取元素的值。所以$_POST['check_box']必须改为$_POST['check_box_con']. 您应该将代码更改为此

if (isset($_POST['check_box_con']) && $_POST['check_box_con'] == '1') {
   print "they want a cookie";
} 
else {
   print "they do not want a cookie";
}
于 2013-10-29T04:13:43.230 回答
0

$_POST['check_box'] 应该是 $_POST['check_box_con']。此外,在其他部分,无需再次检查条件。

if (isset($_POST['check_box_con'])) {
    print "they want a cookie";
 } else {     
    print "they do not want a cookie";     
}
于 2013-10-29T04:14:23.647 回答
0

未选中的复选框不会在 POST 请求中发送 - 您只有在选中时才会收到它,因此您可以这样做:

 if (isset($_POST['check_box_con'])) {
   print "they want a cookie";
 } else {
      print "they do not want a cookie";
 }
于 2013-10-29T04:15:05.020 回答