2011-06-20 59 views
0

我正在從數據庫獲取數據,該數據用於在我的頁面上填充select元素(列表)。空白問題

存儲的數據與我的數據庫中有兩個空格:"ABC CDE"

當我將該值放入select列表中時,它將刪除其他空間,因此將其保留爲"ABC CDE"。但每次獲取數據並記錄時,它仍然有兩個空格。

問題是,如果我需要在數據庫中使用名稱查找某個東西,則不會因爲空間的不同而返回任何東西。

$query = "SELECT * from Member.people"; 
$logger->debug($query); 
$result = mysql_query($query); 
$num = mysql_num_rows($result); 

while ($row = mysql_fetch_array($result)) { 
     $op = $row['Name'];     //ABC DE 
     echo '<option>'.$op.'</option>';  //ABC DE 

} 

有人可以幫忙嗎?

+1

我已經看過了還沒有格式化,我甚至可以讀取它的代碼的最後3個問題... –

+2

爲什麼這個標籤的JavaScript? – alex

回答

1

Consecutive white spaces in HTML are collapsed

特別是在製造輸出字間空當用戶代理應倒塌輸入空白序列。

它們被保留在屬性中。你必須正確設置value屬性,它會工作:

echo '<option value="' . $op . '">'.$op.'</option>'; 

如果你不這樣做,the content of the elements is used as value

該屬性指定控件的初始值。如果未設置此屬性,則將初始值設置爲OPTION元素的內容。

正如您已經注意到的那樣,只有一個空間(因爲它已摺疊)會給您帶來價值。

+0

安非常感謝:) – tinks

1

也許嘗試更換空間字符的轉義字符串&nbsp;

+0

當她獲得價值時,他還必須將它們轉換回空格。 –

+0

是的,我做了,並將其設置爲值:)感謝很多 – tinks

0

HTML中的多個空格在視圖中得到規範化。這就是爲什麼我可以這樣做:

<p>Hello   World</p> 

仍然顯示爲「Hello World」。

做一個字符串替換「」到& nbsp; - 應該解決您的問題:

$op = $row['Name'].replace(/\s/g,'&nbsp;');