【发布时间】:2013-10-12 16:41:35
【问题描述】:
我需要你的 ajax 选择框帮助。
我有 2 个选择框:
面积
城市
当我选择区域时,CITIES 选择框中的选项会根据我选择的区域发生变化。
它工作正常,但是当我加载页面时(例如:编辑数据)我看不到正确的城市(选择框指针站在列表中的第一个城市上,根据我之前选择的 DB 区域) .
我需要改变什么?
谢谢
客户站点:
<p><label>Area</label>
<select name='areaID' id='areaID'>
<?PHP
$query = mysql_query("SELECT * FROM `areas` ORDER BY id ASC ");
while($index = mysql_fetch_array($query))
{
$db_area_id = $index['id'];
$db_area_name = $index['name'];
if ($db_area_id == $userDetails['areaID'])
echo "<option value='$db_area_id' selected>$db_area_name</option>";
else
echo "<option value='$db_area_id'>$db_area_name</option>";
}
?>
</select><span>*</span>
</p>
<p><label>City</label>
<select id='cityID' name='cityID'> </select>
</p>
<script>
$(function () {
function updateCitySelectBox() {
var areaID = $('#areaID').val();
$('#cityID').load('ajax/getCities.php?areaID=' + areaID);
return false;
}
updateCitySelectBox();
$('#areaID').change(updateCitySelectBox);
});
</script>
服务器端:
$areaID = (int) $_GET['areaID'];
$second_option = "";
$query2 = mysql_query("SELECT * FROM `cities` WHERE area_id = $areaID ORDER BY id ASC");
while($index = mysql_fetch_array($query2))
{
$id = $index['id'];
$name = $index['name'];
$second_option .= "<option value='$id'>$name</option>";
}
echo $second_option;
【问题讨论】:
-
一切似乎都很好。尝试通过 ajax 调用上方的
console.log(areaID)检查您传递的 areaID 的值。 -
我也同意@OptimusPrime。
-
@OptimusPrime - 我错过了加载页面时调用正确城市的部分......
-
@Roi 你的意思是 areaID 错了?