我遇到了一些麻烦。
我有一个包含以下表格的数据库: 国家 - >世界上所有国家都加入了 城市 - >这些城市也增加了 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插件)使两个选择框一起工作。
我怎样才能做到这一点?如果我需要发布任何其他内容,请告诉我。
提前致谢。
答案 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 '
。希望有所帮助!