2010-03-17 76 views
8
<select name="select"> 

</select> 

我想用數據庫中的值填充上面的標記。使用PHP來填充<select></select>?

我寫了php代碼。

while($row=mysql_fetch_array($result)) 
{ 

} 

$行獲取獲取正確的價值觀..如何將它添加到<select>

請幫助...是新的編程

回答

8

什麼是這樣的:

echo '<select name="select">'; 
while($row=mysql_fetch_array($result)) 
{ 
    echo '<option value="' . htmlspecialchars($row['column_for_value']) . '">' 
     . htmlspecialchars($row['column_for_label']) 
     . '</option>'; 
} 
echo '</select>'; 

當然,由你來決定哪些項目從$row應使用的價值和每<option>


文本只要確保您正在轉義來自您的數據庫的數據 - 特別是如果它可以包含HTML;當您輸出HTML時,可以使用htmlspecialcharshtmlentities完成此操作。

請注意,這些可能需要一些額外的參數,我沒有在我的例子中使用 - 根據您使用的字符集設置這些參數可能很有用。

+0

非常好的答案IT幫助我 – humphrey 2013-02-23 12:18:52

0
echo '<select>'; 
while($row=mysql_fetch_array($result)) { 
    echo '<option>'.$row['whatever_index'].'</option>'; 
} 
echo '</select>'; 

替換 'whatever_index' 同列您正在提取的名稱。

+0

我想你忘記了屬性的值 – Kevin 2010-03-17 06:25:50

+0

如果未指定值屬性,之間的文本將提交/使用

<select name="sales_person"> <?php foreach ($sales_people as $sales_person){?> <option value="<?=$sales_person->first_name?> <?=$sales_person->last_name?>"><?=$sales_person->first_name?> <?=$sales_person->last_name?></option> <?php }?> </select> 

點。 – 2010-03-17 06:35:47

3

你可以看到什麼可通過在執行此操作時使用:

var_dump($result); 
exit; 

要打印的第一個結果和它的數組的內容。然後你可以看到你想用什麼字段來填充選項。從那裏,你會做這樣的事情:

foreach ($result['field'] as $field) { 
    print '<option value="'.$field.'">$field</option>'; 
} 

當然,這是一個非常簡單的例子,和其他人指出,你可能希望把它變成一個表單之前清理數據。

+1

+1使用數組,而不是mysql抓取函數,在foreach裏面。 – 2010-03-17 09:48:31

3

$selected_value="selected_value"; 
echo '<select name="select">'; 
while($row=mysql_fetch_array($result)) 
{ 
    if($selected_value==htmlspecialchars($row['column_for_value'])) 
    $selected=' selected'; 
    else 
    $selected=''; 
    echo '<option value="'.htmlspecialchars($row['column_for_value']).'"'.$selected.'>' 
    .htmlspecialchars($row['column_for_label']). 
    '</option>'; 
} 
echo '</select>'; 

一些除了帕斯卡爾MARTIN代碼,對一些預定義的值

1
echo "<select>"; 
while($option = mysql_fetch_array($result)) { 
    echo "<option>".htmlspecialchars($option['column'])."</option>"; 
} 
echo "</select>"; 
3

的自動選擇我editied最後一項以這和它完美的作品。我現在唯一的麻煩是,一旦用戶提交了下拉一片空白表格...有誰知道一個簡單的解決方案

echo '<select name="course" id="course" >'; 
       while($option = mysql_fetch_array($course_results)) { 
echo "<option value=".htmlspecialchars($option['cid']).">".htmlspecialchars($option['cname'])."</option>"; 
} 
echo "</select>"; 
2

以上所有的答案將工作,但都沒有合適的,並且需要額外的工作。你不應該使用echo來輸出到屏幕,你不需要。下面的例子假設你使用的是包含數據的對象,但你明白了。正在你不必回聲出HTML