首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery AutoComplete

jQuery AutoComplete
EN

Stack Overflow用户
提问于 2011-07-12 06:17:39
回答 1查看 1.8K关注 0票数 0

我想为用户停留的城市构建一个jquery完整输入字段。当用户开始输入单词时,我想显示一个5个城市的列表,其中有最接近这个格式的城市,国家,城市

我有三张桌子

(id,country_name)

  • Region (id,region_name,country_id)

  • City (id,city_name,region_id,country_id))

当用户选择一个城市时,我希望捕获城市的id,将其插入到数据库中。

我应该如何使用Autocomplete来完成这个任务?

我应该用城市的id设置一个隐藏字段,还是传递城市的名称,然后检查它的id做什么选择?这里的问题是,世界各地都有同名的城市,它将得到区别来识别它。

JS码

代码语言:javascript
复制
$("#UserCity").autocomplete({
    source: function (request, response) {
        $.ajax({
            url: "http://localhost/baku/users/location/",
            dataType: "json",
            data: {
                data: request.term
            },
            success: function (data) {
                /// Need to modify this part
                response($.map(data.geonames, function (item) {
                    return {
                        label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
                        value: item.name
                    }
                }));
            }
        });
    },
    minLength: 2
});

从Ajax获得的示例JSON字符串

代码语言:javascript
复制
[{"name":"Banaras, Uttar Pradesh, India","city_id":"1927","region_id":"2193","country_id":"113"},{"name":"Banda, Uttar Pradesh, India","city_id":"1938","region_id":"2193","country_id":"113"},{"name":"Bangalore, Karnataka, India","city_id":"1949","region_id":"2185","country_id":"113"},{"name":"Banganapalle, Andhra Pradesh, India","city_id":"1950","region_id":"2169","country_id":"113"},{"name":"Banswara, Rajasthan, India","city_id":"1983","region_id":"2190","country_id":"113"},{"name":"Banur, Punjab, India","city_id":"1987","region_id":"2189","country_id":"113"}]

我希望通过表单显示名称作为列表,并将City_id作为可通过的参数,这样我就不需要再进行数据库查询了。

阵列

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [name] => Banaras, Uttar Pradesh, India
            [city_id] => 1927
            [region_id] => 2193
            [country_id] => 113
        )

    [1] => Array
        (
            [name] => Banda, Uttar Pradesh, India
            [city_id] => 1938
            [region_id] => 2193
            [country_id] => 113
        )

    [2] => Array
        (
            [name] => Bangalore, Karnataka, India
            [city_id] => 1949
            [region_id] => 2185
            [country_id] => 113
        )

    [3] => Array
        (
            [name] => Banganapalle, Andhra Pradesh, India
            [city_id] => 1950
            [region_id] => 2169
            [country_id] => 113
        )

    [4] => Array
        (
            [name] => Banswara, Rajasthan, India
            [city_id] => 1983
            [region_id] => 2190
            [country_id] => 113
        )

    [5] => Array
        (
            [name] => Banur, Punjab, India
            [city_id] => 1987
            [region_id] => 2189
            [country_id] => 113
        )

)
EN

回答 1

Stack Overflow用户

发布于 2011-07-12 06:22:20

当面临两个实例具有相同名称的可能性时,我总是添加一个独特的东西来区分它们(但这只是为了让用户做出正确的选择)。通常,您的城市应该有不同的ID(它们应该是唯一的)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6660232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档