Php 如果其中一个选项为0,如何在“选择”下拉列表中检查变量
我的php表单中有一个下拉选项Php 如果其中一个选项为0,如何在“选择”下拉列表中检查变量,php,html,forms,Php,Html,Forms,我的php表单中有一个下拉选项 <div class="field"> <label>* Number of People</label> <select class="ui dropdown" name="male"> <option value="">Gender Male</option> <option <?php if ($male ==
<div class="field">
<label>* Number of People</label>
<select class="ui dropdown" name="male">
<option value="">Gender Male</option>
<option <?php if ($male == 0 ) echo 'selected' ; ?> value="0">0</option>
<option <?php if ($male == 1 ) echo 'selected' ; ?> value="1">1</option>
<option <?php if ($male == 2 ) echo 'selected' ; ?> value="2">2</option>
<option <?php if ($male == 3 ) echo 'selected' ; ?> value="3">3</option>
<option <?php if ($male == 4 ) echo 'selected' ; ?> value="4">4</option>
<option <?php if ($male == 5 ) echo 'selected' ; ?> value="5">5</option>
<option <?php if ($male == 6 ) echo 'selected' ; ?> value="6">6</option>
<option <?php if ($male == 7 ) echo 'selected' ; ?> value="7">7</option>
<option <?php if ($male == 8 ) echo 'selected' ; ?> value="8">8</option>
<option <?php if ($male == 9 ) echo 'selected' ; ?> value="9">9</option>
<option <?php if ($male == 10 ) echo 'selected' ; ?> value="10">10</option>
</select>
<?php if(isset($maleErr)) print ('<span class="error">* ' . $maleErr . '</span>'); ?>
</div>
不停地出现错误,说它没有被设置。我意识到,由于php的empty函数的0等于empty,因此我将其更改为:
if (is_null($_POST["male"])) {
$maleErr = "# of people (gender male) required";
} else {
$male = test_input($_POST["male"]);
}
这是检查表单字段不为空的正确方法吗
请让我知道。多谢各位
附录
你是说像这样吗
<option <?php if ($male === 0 ) echo 'selected' ; ?> value="0">0</option>
使用:
==
比较值和类型,因此当0=='
为true时,0==='
为false。它永远不会为null,因此不能使用为null()。它将始终设置为不能使用isset()
。如您所见,0
为空。因此,要检查某个选项是否已被选中,请尝试检查该选项是否为空字符串:
if ($_POST["male"] === "") {
$maleErr = "# of people (gender male) required";
} else {
$male = test_input($_POST["male"]);
}
嘿,请看我上面帖子中的附录。你是那个意思吗?我只是在我的表单上尝试了一下,但仍然会触发错误,即:“*#人(性别男性)必填”@user27307254534534534543675765:不,我认为Marc看错了。我想是这样,但解决方案是一样的<代码>如果(isset($_POST['male'])和($_POST['male']==”){……缺少性别……}
。无法执行==“
或==0
,因为=
将给出假阳性。@MarcB,嘿,感谢您花时间回复。非常感谢。这仍然会失败,因为0==“
是正确的。@abracadver,感谢您的解决方案。使用它。谢谢。
if ($male === 0)
if ($_POST["male"] === "") {
$maleErr = "# of people (gender male) required";
} else {
$male = test_input($_POST["male"]);
}