记住选择框中的变量

时间:2013-05-16 12:21:13

标签: php variables

我的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代码,如果性别被选为男性回声男性其他回声默认。因为我选择了默认选项。

提前致谢

此致

阿莫德(印度)

1 个答案:

答案 0 :(得分: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>

当然,如果你将自动生成的选项与循环一起使用(保持代码干燥)会更容易。

编辑:如果未选择任何内容,则默认选择第一个选项。给这个没有价值。 this User Experience question

中有一些更有价值的信息
<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>