我目前有一个包含两个选择下拉列表的网页。最上面的一个填充了国家/地区,当选择一个时,第二个选择将填充该国家/地区的主要城市。
目前MySQL用于获取来自countries表的所有记录以填充第一个选择,并且在选择一个之后,使用ajax调用来获取cities表的MySQL查询的结果,仅使用where子句返回所选国家的城市。
如果不对每个国家/地区的变更要求ajax调用,我将如何解决这个问题?而且无需为每个国家/地区运行查询?
答案 0 :(得分:0)
您可以选择所有国家/地区,包括加入的主要城市:
SELECT * FROM countries, cities WHERE cities.country_id = countries.id
您可以将数据临时存储在Javascript中作为JSON对象
var data = JSON.parse("<?php echo json_encode($mysql_result); ?>");
在更改下拉列表时,您可以搜索数据对象并返回城市以获取第二个下拉列表:
changeDropdown = function( country ){
var cities = new Array();
for( var i = 0; i < data.length; i++ ){
if( data[i].country == country ){
cities.push(data[i].cityName);
}
}
return cities;
}
自然,上面的代码取决于您的数据模型。