我在网络上到处都可以找到这样的声音,但是我不知道为什么它不起作用。
所以我有这个下拉菜单
<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 /> ';
}
我从输出中得到的就是
性别:未设置
所以我在这里想念什么?
我是新手。保持温柔。答案 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 /> ';
}
}