0

2 つの入力フィールドを持つログイン div があります。すべての入力フィールドにエラーがないかチェックされます。

データを提出するとき、いくつかの問題があります。HTMLは次のとおりです。

<div class="small">
    <?php if (!isset($errors['a'])):?>
          <input type="text" id="a" name="a" value="<?php echo isset ($_POST['a'])? $_POST['a'] : 'Login'; ?>"/>
     <?php endif;?>

     <?php if (isset($errors['a'])):?>
          <input class="log-error" type="text" id="a" name="a" value="<?php echo isset ($_POST['a'])? $_POST['a'] : 'Login'; ?>"/>
      <?php endif;?>
</div>

<?php if (isset($errors['a'])):?>
     <?php echo "<div id='errordiv'></div><div class='error'>";
      echo $errors['a'][0];
      echo "</div>";
endif;?>

<div class="small">
      <?php if (!isset($errors['b'])):?>
           <input type="text" id="b" name="b" value="<?php echo isset ($_POST['b'])? $_POST['b'] : 'Password'; ?>"/>
      <?php endif;?>

      <?php if (isset($errors['b'])):?>
           <input class="log-error" type="text" id="b" name="b" value="<?php echo isset ($_POST['b'])? $_POST['b'] : 'Password'; ?>"/>
       <?php endif;?>
</div>

<?php if ( ( isset($errors['b']) ) && (empty($errors['a'][0]) == true) ):?>
     <?php echo "<div id='errordiv'></div><div class='error'>";
     echo $errors['b'][0];
     echo "</div>";
endif;?>

データを送信すると、入力クラスに対して両方のエラーが同時に表示されることはありません。値タグがこの問題を引き起こしているようです。

両方の入力フィールドから値タグを削除すると、両方のエラー入力クラスが同時に表示されます。

4

1 に答える 1

0

私には、論理的な誤解があるようです。

一度に両方のエラーを表示したい場合 - この行を置き換えます

<?php if ( ( isset($errors['b']) ) && (empty($errors['a'][0]) == true) ):?>

これとともに

 <?php if (isset($errors['b'])):?>
于 2012-07-27T15:51:03.263 に答える