PHP如果变量等于下拉列表中的值,则将'selected'属性添加到选项

时间:2018-07-19 21:20:58

标签: php html phpmyadmin dropdown html-form

我有一个下拉菜单,它通过检查数据库来检查用户是否已经选择了一个值,如果有,我想向该选项添加一个“ 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>

2 个答案:

答案 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属性,则选项文本将用作值。)