加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何在两个字段答案为’0’时显示错误

发布时间:2020-12-13 22:24:23 所属栏目:PHP教程 来源:网络整理
导读:我试图弄清楚,如果用户在两个字段中选择“0”,则会弹出一个错误,并说其中至少有一个必须填写数量. 如下所示:表单字段有一个与之关联的错误,即$maleErr或$femaleErr … 我写了这样的东西: if (($_POST["male"] === "") ($_POST["female"] === "")) { $quant
我试图弄清楚,如果用户在两个字段中选择“0”,则会弹出一个错误,并说其中至少有一个必须填写数量.

如下所示:表单字段有一个与之关联的错误,即$maleErr或$femaleErr …

我写了这样的东西:

if (($_POST["male"] === "") && ($_POST["female"] === "")) {
  $quantityErr = "Please fill at least one of the fields,either male or female."

}

并将$quantityErr添加到这样的表单字段:(它不适用于它的价值.页面只是空白.

<div class="field">
      <label>* Number of People</label>
      <select class="ui dropdown" name="female">
        <option value="">Gender Female</option>
        <option <?php if ($female === 0 ) echo 'selected' ; ?> value="0">0</option>
        <option <?php if ($female == 1 ) echo 'selected' ; ?> value="1">1</option>
        <option <?php if ($female == 2 ) echo 'selected' ; ?> value="2">2</option>
        <option <?php if ($female == 3 ) echo 'selected' ; ?> value="3">3</option>
        <option <?php if ($female == 4 ) echo 'selected' ; ?> value="4">4</option>
        <option <?php if ($female == 5 ) echo 'selected' ; ?> value="5">5</option>
        <option <?php if ($female == 6 ) echo 'selected' ; ?> value="6">6</option>
        <option <?php if ($female == 7 ) echo 'selected' ; ?> value="7">7</option>
        <option <?php if ($female == 8 ) echo 'selected' ; ?> value="8">8</option>
        <option <?php if ($female == 9 ) echo 'selected' ; ?> value="9">9</option>
        <option <?php if ($female == 10 ) echo 'selected' ; ?> value="10">10</option>
      </select>
      <?php if(isset($femaleErr)) print ('<span class="error">* ' . $femaleErr || $quantityErr . '</span>'); ?>
    </div>

目前没有修改的表单字段如上所述

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


        <div class="field">
          <label>* Number of People</label>
          <select class="ui dropdown" name="female">
            <option value="">Gender Female</option>
            <option <?php if ($female === 0 ) echo 'selected' ; ?> value="0">0</option>
            <option <?php if ($female == 1 ) echo 'selected' ; ?> value="1">1</option>
            <option <?php if ($female == 2 ) echo 'selected' ; ?> value="2">2</option>
            <option <?php if ($female == 3 ) echo 'selected' ; ?> value="3">3</option>
            <option <?php if ($female == 4 ) echo 'selected' ; ?> value="4">4</option>
            <option <?php if ($female == 5 ) echo 'selected' ; ?> value="5">5</option>
            <option <?php if ($female == 6 ) echo 'selected' ; ?> value="6">6</option>
            <option <?php if ($female == 7 ) echo 'selected' ; ?> value="7">7</option>
            <option <?php if ($female == 8 ) echo 'selected' ; ?> value="8">8</option>
            <option <?php if ($female == 9 ) echo 'selected' ; ?> value="9">9</option>
            <option <?php if ($female == 10 ) echo 'selected' ; ?> value="10">10</option>
          </select>
          <?php if(isset($femaleErr)) print ('<span class="error">* ' . $femaleErr . '</span>'); ?>
        </div>

如上所述,当前错误检查无需修改

if ($_POST["male"] === "") {
     $maleErr = "# of people (gender male) required";
   } else {
     $male = test_input($_POST["male"]);
   }

    if ($_POST["female"] === "") {
     $femaleErr = "# of people (gender female) required";
   } else {
     $female = test_input($_POST["female"]);
   }

附加编辑

这可以改为工作吗?因为每次我尝试提交表单时,不幸的是提交而不是弹出错误.

if (($_POST["male"] == 0) && ($_POST["female"] == 0)) {
      $quantityErr = "Please fill at least one of the fields,either male or female.";
  }

这就是这些领域:(对于女性和男性来说都是一样的)

<?php if(isset($femaleErr)) print ('<span class="error">* ' . $femaleErr . '</span>'); ?>
<?php if(isset($quantityErr)) print ('<span class="error">* ' . $quantityErr . '</span>'); ?>

解决方法

首先,您应该打开错误报告或调查错误日志文件(如果已打开).我这样说是因为您描述的白页是解析错误的结果.你忘记在这里的isset上将$femaleErr更改为$quantityErr:

<?php if(isset($femaleErr)) print ('<span class="error">* ' . $femaleErr || $quantityErr . '</span>'); ?>

如果$femaleErr未定义,则此代码将永远不会运行,因为它未设置. (我没看到你的例子中的位置).

但是,为什么你遇到问题的可能性是||. print()需要一个字符串.您的逻辑操作无效,如果正确完成,它将输出1或0(true或false)而不是设置的变量:print(‘stuff’.($varone || $vartwo).’otherstuff’)//打印stuff1otherstuff.

所以请尝试:

$msg = array();
if( isset($femaleErr) )
    $msg[] = $femaleErr;

if( isset($quantityErr ) )
    $msg[] = $quantityErr ;

foreach($msg as $msg)
{
   echo '<span class="error">* '.$msg.'</span>';
}

这将检查每个变量,看看它们是否已设置,如果是,则将其添加到消息数组中.然后foreach将遍历数组并打印出相应的消息.如果数组为空,则不执行任何操作.空数组是foreach的有效输入(只需要是一个数组).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读