来自mysql的数组数组,用于填充国家/地区的城市

时间:2015-03-24 15:17:11

标签: php jquery mysql

我目前有一个包含两个选择下拉列表的网页。最上面的一个填充了国家/地区,当选择一个时,第二个选择将填充该国家/地区的主要城市。

目前MySQL用于获取来自countries表的所有记录以填充第一个选择,并且在选择一个之后,使用ajax调用来获取cities表的MySQL查询的结果,仅使用where子句返回所选国家的城市。

如果不对每个国家/地区的变更要求ajax调用,我将如何解决这个问题?而且无需为每个国家/地区运行查询?

1 个答案:

答案 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;
}

自然,上面的代码取决于您的数据模型。