如何在编辑表单的 HTML 下拉列表中设置选定值?
选择的值来自MySql
此代码无效!>> 选定=""
<select name="TutorGender" id="TutorGender" selected="<?php echo $Gender ?>">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
W3Schools 在这里很好地解释了这一点 http://www.w3schools.com/tags/att_option_selected.asp
您的代码可能看起来像这样。
<select name="TutorGender" id="TutorGender">
<option value="Male" <?php if($Gender == "Male") echo "selected"; ?>>Male</option>
<option value="Female" <?php if($Gender == "Female") echo "selected"; ?>>Female</option>
</select>
虽然我的 PHP 语法可能有点偏离,但你应该明白了。
Selected 出现在option
标签上,而不是select
标签上。
<select name="TutorGender" id="TutorGender" >
<option value="Male" selected="selected">Male</option>
<option value="Female">Female</option>
</select>
<select name="TutorGender" id="TutorGender">
<option value="Male" <?php if($Gender=='Male') echo 'selected' ?>>Male</option>
<option value="Female" <?php if($Gender=='Female') echo 'selected' ?>>Female</option>
</select>
该selected
属性出现在应该选择的选项上,而不是 select 元素上(如果它出现在 select 元素本身上,那么(因为可以同时选择多个选项)它必须采用id
s的列表并且您需要为每个选项添加一个 id)。
<option value="foo" selected>Foo</option>
通常,您将有一个值数组(或值/人类文本对),您将循环这些值。(即你不会硬编码你的选项)
每次您绕过循环时都会生成一个选项,并测试您是否应该每次都包含一个选定的属性。
<option <?php if($Gender == 'Male'){ echo(' selected '); } ?> value="Male">Male</option>
<option <?php if($Gender == 'Female'){ echo(' selected '); } ?> value="Female">Female</option>
<select name="TutorGender" id="TutorGender">
<?php
$genders = array( 'Male', 'Female' );
foreach( $genders as $value )
{
$selected = ( $Gender == $value )? ' selected="selected"': '';
echo '<option value="' . $value . '"' . $selected . '>' . $value . '</option>';
}
?>
</select>
只是另一种方式。我更喜欢对这样的代码使用速记 if 语句。
<select name="TutorGender" id=\"TutorGender\">
<option value="Male" <?php echo ($Gender == "Male" ? "selected" : ""); ?>>Male</option>
<option value="Female" <?php echo ($Gender == "Female" ? "selected" : ""); ?>>Female</option>
这是使用速记“if”语句的链接。
在我需要使用选择作为通过数据库填充的用户更新表单的一部分的情况下,我发现数组选项效果最好。逐行选项很快就会变得非常笨拙。这样,如果需要任何新选项,您只需向 $optionDept 数组添加一个选项。在此示例中,“$row['Dept']”来自数据库请求的较大总体结果。
$optionDept= array('sales','warehouse','inspection','production','accounts','admin','inactive');
$optionCount= count($optionDept);
echo"<select name=\"UserDept\">";
for($x = 0; $x < $optionCount; $x++) {
echo"<option value=".$optionDept[$x];
if($optionDept[$x]==$row['Dept']){echo " selected";}
echo">".$optionDept[$x]."</option>";}
echo"</select</P>
试试这个
如果你想保持男性为选中状态
<select name="TutorGender" id="TutorGender" >
<option value="Male" selected="selected">Male</option>
<option value="Female">Female</option>
</select>
这对我有用:我通过提交的 GET 方法发送我想要恢复的值,然后在 php 中,在页面的末尾(如果没有,如果代码在 php 之前,将设置默认值)我设置了这些值。
echo "select_language.selectedIndex = ".$_GET['iL'].";";