使用mysql数据填充选择框

时间:2010-10-29 20:48:49

标签: php jquery mysql

我遇到了一些麻烦。

我有一个包含以下表格的数据库: 国家 - >世界上所有国家都加入了 城市 - >这些城市也增加了 user_profile - >用户的个人资料,其字段为“country”& “城市”。

一切正常,即使是盒子的填充也在起作用。但我不知道如何获得国家和地区的用户的SELECTED值。城市。

我有以下代码:

Select Country: <br />
<select id="countries">
<option value="">--</option>

<?php
$sql = "SELECT country, title FROM countries ORDER BY title ASC";

$rs = mysql_query($sql);

while($row = mysql_fetch_array($rs))
{
  echo "<option value=\"".$row['country']."\">".$row['title']."\n  ";
}
?>
</select>


Select City: <br />
<select id="cities">
<option value="">Select one</option>

<?php
$sql = "SELECT country, title FROM cities ".
"ORDER BY title ASC";

$rs = mysql_query($sql);

while($row = mysql_fetch_array($rs))
{
  echo "<option class=\"".$row['country']."\"  value=\"".$row['title']."\">".$row['title']."\n  ";
}
?>
</select>

现在我需要在表user_profile中查看哪个国家/地区&amp;他选择了这个城市并向他展示。

我还使用jchained(jquery插件)使两个选择框一起工作。

我怎样才能做到这一点?如果我需要发布任何其他内容,请告诉我。

提前致谢。

2 个答案:

答案 0 :(得分:2)

这里有很多遗漏的代码,但我会尽力帮助。

我将首先假设您已经将用户选择存储在user_profile表中,并且它们是纠正关系的外键。

要获取所选ID以重新填充带有所选标志的选择框,请使用:

SELECT country, city FROM user_profile where id = $user_id;

要获取文本值,您可以执行以下操作:

SELECT country.title as country, city.title FROM user_profile LEFT JOIN countries ON user_profile.country = country.id LEFT JOIN cities ON user_profile.city = cities.id WHERE user_profile.id = $user_id;

如果您不将它们存储为外键关系,而是通过user_profile表中的字符串标题存储,则需要执行以下操作:

SELECT country.title as country, city.title FROM user_profile LEFT JOIN countries ON user_profile.country = country.title LEFT JOIN cities ON user_profile.city = cities.title WHERE user_profile.id = $user_id;

然后,您可以使用这些结果显示给用户或在选项框中设置“SELECTED”标志。

答案 1 :(得分:1)

你只是说他们在选择价值后不知道该怎么办?如果是这样,那么您只需使用表单将值发布到新页面。在接收页面上,您可以运行查询以更新用户的个人资料。

很抱歉,如果我的回复不够详细&gt;&lt;

编辑哦,我现在可以看到你的意思了。您可以正确存储它但是如果用户之前设置的那样,您希望将正确的选项标记为已选择?如果是这样,那么您可以查询该值,然后在while循环内部添加一个检查以查看$user_country == $row['country']是否echo ' SELECTED '。希望有所帮助!