2013-01-24 59 views
0

我有一個名爲'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']); 

但我不確定設置選項將多個列表複製到數組$ retrieve_majors中的值。

感謝您的幫助!

+0

也許我不應該將列表值存儲爲逗號分隔的字符串在一個字段中。處理這個問題的最好方法是什麼? – IlludiumPu36

回答

1

我想你問的是如何設置選項的默認選項,對不對?

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

無法讀取未格式化的代碼 – Barmar

+0

是否在循環之前設置了$ retrieve_majors? – Barmar

+0

我還沒有循環...你能解釋我應該如何處理這個問題嗎? – IlludiumPu36