2

如何在编辑表单的 HTML 下拉列表中设置选定值?

选择的值来自MySql

此代码无效!>> 选定=""

<select name="TutorGender" id="TutorGender" selected="<?php echo $Gender ?>">
    <option value="Male">Male</option>
    <option value="Female">Female</option>
</select>
4

10 回答 10

13

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 语法可能有点偏离,但你应该明白了。

于 2013-02-01T13:57:51.510 回答
2

Selected 出现在option标签上,而不是select标签上。

<select name="TutorGender" id="TutorGender" >
<option value="Male" selected="selected">Male</option>
<option value="Female">Female</option>
</select>
于 2013-02-01T13:54:20.517 回答
2
<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>
于 2013-02-01T13:55:07.540 回答
0

selected属性出现在应该选择的选项上,而不是 select 元素上(如果它出现在 select 元素本身上,那么(因为可以同时选择多个选项)它必须采用ids的列表并且您需要为每个选项添加一个 id)。

<option value="foo" selected>Foo</option>

通常,您将有一个值数组(或值/人类文本对),您将循环这些值。(即你不会硬编码你的选项)

每次您绕过循环时都会生成一个选项,并测试您是否应该每次都包含一个选定的属性。

于 2013-02-01T13:54:21.990 回答
0
<option <?php if($Gender == 'Male'){ echo(' selected '); } ?> value="Male">Male</option>
<option <?php if($Gender == 'Female'){ echo(' selected '); } ?> value="Female">Female</option>
于 2013-02-01T13:55:00.720 回答
0
<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>
于 2013-02-01T13:57:55.217 回答
0

只是另一种方式。我更喜欢对这样的代码使用速记 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”语句的链接。

于 2014-04-02T00:08:04.477 回答
0

在我需要使用选择作为通过数据库填充的用户更新表单的一部分的情况下,我发现数组选项效果最好。逐行选项很快就会变得非常笨拙。这样,如果需要任何新选项,您只需向 $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>
于 2017-06-13T13:13:14.003 回答
-1

试试这个

如果你想保持男性为选中状态

<select name="TutorGender" id="TutorGender" >
<option value="Male" selected="selected">Male</option>
<option value="Female">Female</option>
</select>
于 2013-02-01T13:56:16.310 回答
-1

这对我有用:我通过提交的 GET 方法发送我想要恢复的值,然后在 php 中,在页面的末尾(如果没有,如果代码在 php 之前,将设置默认值)我设置了这些值。

echo "select_language.selectedIndex = ".$_GET['iL'].";";
于 2014-02-17T10:51:13.737 回答