2011-11-06 40 views
1

我有一個動態的下拉框,其中第一個選擇,從數據庫中填充第二個下拉列表。動態填充下拉框不與'空格'工作

include("connect.php"); 
$choice = mysql_real_escape_string($_GET['choice']); 

$query = "SELECT * FROM locations WHERE county_name='$choice' ORDER BY town_name ASC"; 

$result = mysql_query($query); 
while ($row = mysql_fetch_array($result)) { 
     echo "<option>" . $row{'town_name'} . "</option>"; 
} 

這工作完全因爲這是1個字即倫敦,埃塞克斯任何「COUNTY_NAME」變量。但是,當他們選擇「東薩塞克斯郡」時,它什麼都不會返回。

我以爲mysql_real_escape_string是問題,所以我刪除了,但問題仍然存在。

$(function() {    
$("#select_county").change(function() { 
$("#select_town").load("include_mx/getter.php?choice=" + $("#select_county").val()); 
    });  
}); 

任何幫助,將不勝感激,爲什麼「空間」在兩者之間是沒有成功:

的JavaScript的數據,如下所示插入第二個下拉IS。

非常感謝提前。

+0

如何讓它更安全?我認爲real_escape_string就足夠了? – Ben

+1

你說得對,那是'mysql_real_escape_string'的作用。但是,我們不知道它對空間的影響,這是你的問題。在調試器中查看它。 – Hogan

+0

它似乎是返回URL -getter.php?choice = West%20Sussex,那麼%20會是問題嗎? – Ben

回答

0

我不確定最快最簡單的答案,怎麼過,這對我的作品:

任何縣,已被替換成「西+蘇塞克斯」一個「空間」:

`str_replace(" ","+","$variable"); 

因爲我不想顯示'+'我用這個:

$c=$row['county_name']; $county = str_replace("+"," ","$c"); echo "<option value='$c'>$county</option>"; 

這似乎現在一直工作,是非常強大的。