Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果其中一个选项为0,如何在“选择”下拉列表中检查变量_Php_Html_Forms - Fatal编程技术网

Php 如果其中一个选项为0,如何在“选择”下拉列表中检查变量

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 ==

我的php表单中有一个下拉选项

    <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"]);
}