我目前有一个网页,有两个选择下拉列表。最上面的一个是国家,当选择一个时,第二个选择是该国家的主要城市。
目前,MySQL用于从国家/地区表中获取所有记录,以填充第一个选择,选择一个后,使用ajax调用从城市表的MySQL查询中获取结果,使用where子句仅返回所选国家/地区的城市。
如果不需要每次国家变更都调用ajax,我该如何处理?而且不必为每个国家运行查询?
您可以选择所有国家/地区,包括加入的主要城市:
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;
}
当然,上面的代码取决于您的数据模型。