从数据库创建选择列表

问题描述:

我正在从数据库表中选择列表一切正常工作正常只有问题是在选项值,如果该值包含两个单词如“纽约”它只返回“新”。下面是代码从数据库创建选择列表

<? $country=intval($_GET['country']); 

include('connect-db.php'); 

$query="SELECT CityName FROM cities WHERE CountryId='$country'"; 
$result=mysql_query($query); 

?> 
<select name="city"> 
<option value="">Select City</option> 
<? while($row=mysql_fetch_array($result)) { ?> 
<option value=<?=$row['CityName']?>><?=$row['CityName']?></option> 
<? } ?> 
</select> 
+0

在你的查询的正下方放置$ row = mysql_fetch_array($ result); echo $ row ['CityName'];我们可以测试这个 – kezi 2012-08-02 05:59:35

+0

你还没有使用该值周围的引号 AndroidLearner 2012-08-02 06:03:34

<option value="<?=$row['CityName']?>"><?=$row['CityName']?></option> 

的 “”。

+0

+1我猜你是第一个回答 – Rab 2012-08-02 06:50:30

你将不得不用来包围在“值”,HTML代码认为纽约部分是选项标记的另一种属性,因此:

<option value="<?=$row['CityName']?>"><?=$row['CityName']?></option> 

只需使用“”为价值的价值和你写HTML标签一样。

您在提供值时没有包含“”。如果你看一下你的代码选择框创建的HTML是一样的东西

<option value="new" york>new york</option> 

正确的解决方案在下面给出,只是包含在报价的同时给选项标记的价值。

<? $country=intval($_GET['country']); 

include('connect-db.php'); 

$query="SELECT CityName FROM cities WHERE CountryId='$country'"; 
$result=mysql_query($query); 

?> 
<select name="city"> 
<option value="">Select City</option> 
<? while($row=mysql_fetch_array($result)) { ?> 
<option value="<?=$row['CityName']?>"><?=$row['CityName']?></option> 
<? } ?> 
</select> 
+0

谢谢“”是现在工作正常的错误。 Regards – 2012-08-02 06:12:55

+0

建议:使用firebug和mozilla firefox来查看你的html并调试你的javascript或jquery代码,这将帮助你在代码中找到真正的问题。 – AndroidLearner 2012-08-02 06:16:32

+0

当您得到正确的解决方案时,您可以将最佳答案标记为正确,您也可以放弃提议。 – AndroidLearner 2012-08-02 06:19:00