2010-11-15 24 views
0

拉着我用它來填充下拉:空白在選擇下拉列表,從MySQL

$result = mysql_query("SELECT user from `users` order by user asc") or die(mysql_error()); 
      echo '<select name="user" class="user">'; 
      while ($row = mysql_fetch_array($result)) { 
       echo "<option value=".$row['user'].">".$row['user']."</option>"; 
      } 
      echo '</select>'; 

但來源是這樣的:

<select name="user" class="user"><option value=joe bloggs>joe bloggs</option> 

所以,當我這樣做:

var user = $('.user').val(); 

它只看到「joe」而不是「joe bloggs」?任何想法

回答

4
$result = mysql_query("SELECT user from `users` order by user asc") or die(mysql_error()); 
     echo '<select name="user" class="user">'; 
     while ($row = mysql_fetch_assoc($result)) { 
      echo '<option value="'.htmlspecialchars($row['user']).'">'.htmlspecialchars($row['user']).'</option>'; 
     } 
     echo '</select>'; 

更正爲你:)

+0

出於利益爲什麼我可以接受一定的時間? v沮喪! – benhowdle89 2010-11-15 12:49:35

2

用引號括值:

echo "<option value=\"".$row['user']."\">".$row['user']."</option>"; 

此外,確保htmlspecialchars()爲了逃避可能的報價在名。例如,

$user = htmlspecialchars($row['user']); 
printf('<option value="%s">%s</option>', $user, $user); 
1

使用引號"各地的屬性值..

你的HTML應該像

<option value="joe bloggs">joe bloggs</option> 
2

while循環裏面試試:

echo "<option value=\"".$row['user']."\">".$row['user']."</option>"; 

基本上增加了一個報價的選項內的價值

+0

打敗了我:哦,我也爲htmlspecialchars()函數投票,將會讓你免於許多頭痛:D – ZaQ 2010-11-15 12:47:50