我有一个下拉菜单,它通过检查数据库来检查用户是否已经选择了一个值,如果有,我想向该选项添加一个“ selected”属性,以便当他们编辑其个人资料时,该选项为由他们选择的内容预先选择。
以下是我要完成的工作的一个示例。它适用于文本输入,但我不知道如何使用下拉列表。
因此,如果用户选择“狗”,它将在数据库中放置并添加“选定”作为属性
$animal = $mysqli->escape_string($_POST['animal']);
//PHP UPDATE database script -------->
<label>Animal</label></br>
<select name='animal' value='<?php if($animal == value){ /*Add selected attribute to option */ ?>'>
<option value="" disabled selected>Select One</option>
<option value="" disabled>----------------</option>
<option value="Dog">Dog</option>
<option value="Cat">Cat</option>
<option value="Bird">Bird</option>
</select>
答案 0 :(得分:0)
像这样尝试:
$animal = $mysqli->escape_string($_POST['animal']);
//PHP UPDATE database script -------->
echo '<label>Animal</label></br>
<select name="animal">
<option value="" disabled>Select One</option>
<option value="" disabled>----------------</option>
<option value="Dog" ' . ($animal == 'Dog' ? 'selected' : '') . '>Dog</option>
<option value="Cat" ' . ($animal == 'Cat' ? 'selected' : '') . '>Cat</option>
<option value="Bird" ' . ($animal == 'Bird' ? 'selected' : '') . '>Bird</option>
</select>';
答案 1 :(得分:0)
定义选项数组
$animals = ['Dog', 'Cat', 'Bird'];
然后从该数组生成<select>
的选项列表,并对照每个动物检查所选动物。如果匹配,则添加selected
属性。
<label>Animal</label></br>
<select name='animal'>
<!-- select the default if none of the options are selected -->
<option value="" disabled <?php if (!in_array($animal, $animals)) echo 'selected' ?>>
Select One
</option>
<option value="" disabled>----------------</option>
<?php foreach ($animals as $option) {
echo "<option ";
if ($animal == $option) {
echo 'selected';
}
echo ">$option</option>";
?>
</select>
在这种情况下,value
元素不需要 <option>
属性,因为您为选项文本使用了相同的值。 (如果省略了value属性,则选项文本将用作值。)