将多个选择列表选项设置为“从查询中选择”


set multiple select list options to selected from query

我有一个名为'majors'的字段,其中包含一串用逗号分隔的整数。 此字段使用以下变量从插入查询的多选列表填充:

$majors_string = implode(",", $majors);

现在在编辑页面上,我想让这些值在同一列表中设置选项。 部分问题在于列表是使用以下方法动态生成的:

<select name="majors[]" size="9" multiple="multiple" id="majors">
          <?php 
$query = mysql_query("SELECT * from major ORDER BY title ASC");
for($i=0;$i<mysql_num_rows($query);$i++) {
$row=mysql_fetch_assoc($query);
?>
          <option value="<?php echo $row['major_pk']; ?>"><?php echo $row['title']; ?></option>
          <?php 
}
?>
        </select>

在编辑页面上的初始查询中,我有:

$query_topic = "SELECT * FROM topic WHERE topic_pk = '$topic_pk'";
$result_topic = mysql_query($query_topic, $connection) or die(mysql_error());
$row_topic = mysql_fetch_assoc($result_topic);
$retrieved_majors = explode(",", $row_topic['majors']);

但我不确定是否将多个列表中的选项设置为数组 $retrieved_majors 中的值。

感谢您的任何帮助!

我想你在问如何设置选择哪些选项的默认值,对吧?

<option value="<?php echo $row['major_pk']; ?>" <?php if(array_search($row['major_pk'], $retrieved_majors) !== false) {echo 'selected';} ?> ><?php echo $row['title']; ?></option>