我有一个下拉菜单,检查用户是否已经通过检查数据库选择了一个值,如果他们已经选择了,我想要添加一个' selected‘属性到该选项,以便当他们编辑他们的配置文件时,该选项是由他们选择的内容预先选择的。
下面是我想要实现的一个例子。它适用于文本输入,但我不知道如何使用下拉列表。
因此,如果用户选择'Dog',它将被放入数据库并添加'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>
发布于 2018-07-20 05:48:42
定义选项数组
$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>
在这种情况下,<option>
元素不需要value
属性,因为您对选项文本使用了相同的值。(如果省略value属性,将使用选项文本作为值。)
发布于 2018-07-20 05:38:35
像这样试一下:
$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>';
https://stackoverflow.com/questions/51431897
复制相似问题