PHP如何获得国家/地区的下拉列表

时间:2011-07-11 16:00:40

标签: php html

我正在为我的注册页面制作国家/地区列表, 但我想知道如何将其实施到我的注册表中。

我在country.php文件中列出了该列表

<select name="Country">
<option selected="selected" </option>
<option value="">Country...</option>
<option value="Afganistan">Afghanistan</option>
<option value="Albania">Albania</option>
<option value="Algeria">Algeria</option> 
</select>

在我的注册页面中,我在表格中使用

  <tr>
  <th>Land </th>
  <td><?php include 'country.php'; ?></td>
  </tr>

但是当我提交它时,似乎并没有将值保留在表单中。

如何使$ Country的值等于country.php文件中选择的选项?

非常感谢:)

3 个答案:

答案 0 :(得分:1)

<option selected="selected" </option>

应该是

<option selected="selected"></option> 

答案 1 :(得分:0)

我认为行破坏你的代码:

<option selected="selected" </option>

所以你只需要附上<option>标签。

您还可以从任何网站提取国家/地区列表,如雅虎,只需转到单页,然后从浏览器转到view =&gt;页面源。

答案 2 :(得分:0)

除了其他人指出的语法错误之外,你需要保存数组中的所有国家/地区,并循环数组,每次迭代回显一个选项/国家/地区。并且,使select记住您之前输入的内容的部分是将selected="selected"部分放在所选国家/地区选项中。

总的来说,它看起来像这样:

function getSelectOfCountries($chosenCountry = null)
{
  $countries = array('Afganistan', 'Albania', 'Algeria', ...);
  echo "<select name='country' id='country'>\n";
  echo "<option value=''>Country...</option>\n";
  foreach ($countries as $country)
  {
    echo "<option value='$country'";
    if ($chosenCountry == $country)
    {
      echo " selected='selected'";
    }
    echo ">$country</option>\n";
  }
}

您将该功能放在包含的文件中。并采取以下形式:

<?php
if (isset($_GET['country']))
{
  $country = $_GET['country'];
} else {
  $country = null;
}
?>
<form ...>
...
<tr>
  <th><label for="country">Land </label></th>
  <td><?php getSelectOfCountries($country);?></td>
</tr>
...
</form>