PHP Get方法不发送完整输入

时间:2010-08-27 06:12:04

标签: php get

我有一个使用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

但是+澳大利亚并没有出现。

任何人都知道我做过什么愚蠢的事情或者我错过了什么?

3 个答案:

答案 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指出..