-3

私はこのコードをHTMLで持っています

<tr>
<td>
Gender:
</td>
<td>
<select name="Gender">
<option selected="" value="Default">
Gender
</option>
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
</td>
</tr>

PHPでの検証を完了しました。しかし、問題は、送信ボタンを押してphpコードでエラーが発生すると、オプションがデフォルトに戻ることです。これと同様の質問を読みました。しかし、性別が男性のエコー男性として選択されている場合、そうでない場合はデフォルトをエコーするようなPHPコードはありますか。デフォルトのオプションを選択したためです。

前もって感謝します

よろしく

アモッド(インド)

4

1 に答える 1

0

あなたができることはこれです:

<select name="Gender">
  <option>
    Gender
  </option>
  <option <?php if ($_POST['Gender'] == "Male") echo "selected"; ?> value="Male">
    Male
  </option>
  <option <?php if ($_POST['Gender'] == "Female") echo "selected"; ?> value="Female">
    Female
  </option>
</select>

もちろん、ループで自動生成されたオプションを使用すると、はるかに簡単になります (コードを DRY に保ちます)。

編集: 何も選択されていない場合、最初のオプションがデフォルトで選択されます。これに価値を与えません。このユーザーエクスペリエンスの質問には、さらに価値のある情報がいくつかあります

<select name="Gender">
  <option>
    Gender
  </option>
  <?php foreach (array('Male', 'Female') as $Gender) { ?>
    <option <?php if ($_POST['Gender'] == $Gender) echo "selected"; ?> value="<?php echo $Gender; ?>">
      <?php echo $Gender; ?>
    </option>
  <?php } ?>
</select>

短いタグを有効にしている場合は、次のことができます。

<select name="Gender">
  <option>
    Gender
  </option>
  <? foreach (array('Male', 'Female') as $Gender) { ?>
    <option <? if ($_POST['Gender'] == $Gender) echo "selected"; ?> value="<?= $Gender; ?>">
      <?= $Gender; ?>
    </option>
  <? } ?>
</select>
于 2013-05-16T12:26:33.690 に答える