2011-11-06 88 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>"; 

这似乎现在一直工作,是非常强大的。