如何根据php数组将预选选项设置为多个选择标记


How to set preselected options into a multiple select tag according to a php array

我已经做了一个多重选择标签,我希望它的一些选项被选择根据给定的PHP数组$attr

<select multiple="multiple" name="isattr[]" id="editAttr">
<?php         
    while($attrresult = mysqli_fetch_array($attrfetch)) {
        echo  "<option>".$attrresult[attr_title]."</option>";
     }
?>
</select>

因此,如果select标签有选项"Manager"、"Programmer"、"Teacher",并且$attr包含值"Manager"answers"Programmer",则应该预先选择这些选项。

使用in_array()检查该值是否在$attr数组中,并根据该值将所选属性应用于该元素:

<select multiple = "multiple" name = "isattr[]" id = "editAttr" >
<?php
    $attr = array("Manager", "Programmer");
    while ($attrresult = mysqli_fetch_array($attrfetch)) {
        $selected = in_array( $attrresult[attr_title], $attr ) ? ' selected' : '';
        echo "<option".$selected.">".$attrresult[attr_title]."</option>";
    } 
?> 
< /select>