显示带下拉菜单的帖子

时间:2018-07-19 21:19:39

标签: php

我在网络上到处都可以找到这样的声音,但是我不知道为什么它不起作用。

所以我有这个下拉菜单

<select name="gender">
  <option value="">Choose Gender</option>
  <option value="1" name="male">Male</option>
  <option value="2" name="female">Female</option>
</select>

然后我有以下php代码

if (isset($_POST['gender']) === 1){
   echo 'Gender: Male <br /> ';
}else if (isset($_POST['gender']) === 2){
   echo 'Gender: Female <br /> ';
}else{
   echo 'Gender: Not Set <br /> ';
}

我从输出中得到的就是

  

性别:未设置

所以我在这里想念什么?

我是新手。保持温柔。

1 个答案:

答案 0 :(得分:1)

对于初学者,isset()返回一个bool,而不是要测试的值。 (请注意,“ set”的语义是一个“是/否”的概念。)此外,===还比较类型,并且我怀疑默认所有发布的值都是字符串。删除isset()调用并使用不太严格的比较:

if ($_POST['gender'] == 1){
    echo 'Gender: Male <br /> ';
}else if ($_POST['gender'] == 2){
   echo 'Gender: Female <br /> ';
}else{
   echo 'Gender: Not Set <br /> ';
}

如果您确实想在检查值之前使用isset()来检查值的存在,则可以在这种情况下包装整个内容:

if (isset($_POST['gender'])){
    if ($_POST['gender'] == 1){
        echo 'Gender: Male <br /> ';
    }else if ($_POST['gender'] == 2){
       echo 'Gender: Female <br /> ';
    }else{
       echo 'Gender: Not Set <br /> ';
    }
}