我想为用户停留的城市构建一个jquery完整输入字段。当用户开始输入单词时,我想显示一个5个城市的列表,其中有最接近这个格式的城市,国家,城市
我有三张桌子
(id,country_name)
当用户选择一个城市时,我希望捕获城市的id,将其插入到数据库中。
我应该如何使用Autocomplete来完成这个任务?
我应该用城市的id设置一个隐藏字段,还是传递城市的名称,然后检查它的id做什么选择?这里的问题是,世界各地都有同名的城市,它将得到区别来识别它。
JS码
$("#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字符串
[{"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作为可通过的参数,这样我就不需要再进行数据库查询了。
阵列
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
)
)发布于 2011-07-12 06:22:20
当面临两个实例具有相同名称的可能性时,我总是添加一个独特的东西来区分它们(但这只是为了让用户做出正确的选择)。通常,您的城市应该有不同的ID(它们应该是唯一的)。
https://stackoverflow.com/questions/6660232
复制相似问题