我有一个使用mySQL数据库动态生成的下拉列表,使用以下代码:
$region = mysql_query("select region_name from region", $connection);
echo "<select name=region>Region</option>";
while ($row = $mysql_fetch_array($region))
{
echo "<option value =$row[region_name]>$row[region_name]</option>";
}
echo "</select>"
这样可以完全打印出列表,但是当我使用GET方法提交表单时,任何在其中都有空格的区域名称都不会在URL中正确传递。而不是“南澳大利亚”,它只会给我“南方”
我知道网址最终应该是: http://foo.com/query.php?region=South+Australia
但是+澳大利亚并没有出现。
任何人都知道我做过什么愚蠢的事情或者我错过了什么?
答案 0 :(得分:1)
在选项标记中使用单引号:
在while循环中尝试此操作:
echo "<option value='$row[region_name]'>$row[region_name]</option>";
答案 1 :(得分:1)
您的代码中有错误.........
echo "<select name=region>Region</option>";
应该是
echo "<select name='region'><option>Region</option>";
并且在给予价值时这样做
echo "<option value='$row[region_name]'>$row[region_name]</option>";
答案 2 :(得分:0)
那是因为你需要引用HTML属性:
<option value="South Australia">...</option>
否则,浏览器应该如何区分一个属性和下一个属性?
<option value=South Australia>...</option>
浏览器将其视为一个名为“value”的属性,其值为“South”,另一个属性称为“Australia”。
尝试validating your HTML,它也会发现其他错误,因为Starx指出..