HTML选择-下拉列表php


html select - drodown list php

我有一个php配置文件页面,供用户设置他的配置文件。个人资料页面提示用户设置性别。这是代码:

<form action='database.php' method=post>
<select name="myvalue">
  <option value=" ">--select--</option>
  <option value="male">male</option>
  <option value="female">female</option>
</select>
<input type=submit>
</form>

在用户选择性别之后,下面的代码获取选择

$myvalue=$_POST['myvalue'];

,然后使用函数在数据库中存储值。

下次用户访问他的个人资料页面时,我希望下拉列表显示之前选择的值。例如,假设用户第一次创建个人资料时选择性别为"男性"。如果他再次访问配置文件页面,下拉列表必须自动选择值,值"男性"。

试试这个:

<?php 
   $gender = /// fetch value from database
?>
<form action='database.php' method=post>
<select name="myvalue">
  <option value=" ">--select--</option>
  <option value="male" <?php if($gender == "male"){?> selected="selected" <?php }?>>male</option>
  <option value="female" <?php if($gender == "female"){?> selected="selected" <?php }?>>female</option>
</select>
<input type=submit>
</form>

可以使用selected关键字

将选项字段设置为默认选择
<select name="myvalue">
  <option value=" ">--select--</option>
  <option value="male" selected>male</option>
  <option value="female">female</option>
</select>

如果使用XML文档类型则必须使用

<select name="myvalue">
  <option value=" ">--select--</option>
  <option value="male" selected="selected">male</option>
  <option value="female">female</option>
</select>

这取决于你从cookie或数据库中为该用户加载值然后执行检查以将"选定"值返回到该选项字段

只需检查值并在html中显示selected="selected"

<?php
$value = $_POST['myvalue'];
?>
<form action='database.php' method=post>
<select name="myvalue">
  <option value=" " <?php echo $value==' ' ? 'selected="selected"' : ''; ?> >--select--</option>
  <option value="male" <?php echo $value=='male' ? 'selected="selected"' : ''; ?> >male</option>
  <option value="female" <?php echo $value=='female' ? 'selected="selected"' : ''; ?> >female</option>
</select>
<input type=submit>
</form>

像这样:

<form action='database.php' method=post>
<select name="myvalue">
  <option value=" ">--select--</option>
  <option value="male" <?php echo $gender=="male"?"selected":""; ?>>male</option>
  <option value="female"  <?php echo $gender=="female"?"selected":""; ?>>female</option>
</select>
<input type=submit>
</form>

但是最好是使用一个像样的模板系统。

add selected attribute to option

<select name="myvalue">
<option value=" ">--select--</option>
<?php
$selected = 'selected="selected" ';
foreach(array('male', 'female') as $v){
 echo '<option '.(($v==$dbgender)? $selected : '').'value="'.$v.'">'.$v.'</option>';
}
?>
</select>

$dbgender是为该用户存储的值

这样做验证

$val = value_from db;
if($val == "male") {
     echo '<option value="male" selected="selected">male</option>';
} elseif($val == "female") {
     echo '<option value="female" selected="selected">female</option>';
}