我必须在我的网络表单中为以下条件创建自动完整文本框
如果我输入国家/地区名称,则自动完成建议应显示存储在我的数据库中的国家/地区,州名和城市名称列表。
如果我输入城市名称,则自动建议应显示我的数据库中的国家/地区名称,类似州名也
例如:如果用户输入
塔米尔纳杜
然后结果将是
tamilnadu,印度
如果用户在文本框中键入chennai 那么自动完成建议应该是
chennai,tamilnadu,india
如果用户输入Erode tamilnadu
然后结果应该是
侵蚀,塔米尔纳杜,印度
我的问题是如何实现上面提到的结果,例如输入到文本框的多个条目和多个建议作为输出,如google place search
请指导我,我在网上搜索,但我找不到完美的解决方案
这是我的脚本代码
<script type ="text/javascript" >
$(function () {
$('#<%=txtSearch.ClientID%>').autocomplete({
source: function (request, response) {
$.ajax({
url: "Default.aspx\getCityName",
data: "{'pre':'" + request.term + "'} ",
datatype: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
response($.map(data.d, function (item) {
return {
cityname: item.cityname,
country: item.country,
json: item
}
}));
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
},
focus: function (event, ui) {
$('#<%=txtSearch.ClientID%>').val(ui.item.cityname);
return false;
},
select: function (event, ui) {
$('#<%=txtSearch.ClientID%>').val(ui.item.citycame);
return false;
}
}).data("ui.autocomplete")._renderItem = function (ul, item) {
return $("<li>")
.append("<a>City:" + item.cityname + "<br>Country :" + item.country + "</a>")
.appendTo(ul);
};
});
</script>
我的网络服务代码:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static List<Searchcity> getCityName(String pre)
{
List<Searchcity> allcity = new List<Searchcity>();
using(MydatabaseEntities dc = new MydatabaseEntities())
{
allcity = (from a in dc.Searchcities
where a.cityname.StartsWith(pre)
select a).ToList();
}
return allcity;
}
答案 0 :(得分:0)
这可能会对你有帮助!
<强> AJAX 强>
var Autoarr = [];
$.ajax({
url: "',
dataType: "json",
async: false,
success: function (data) {
var result = $.map(data, function (val, key) {
return { type: key, cityname: val.cityname, country: val.country};
});
for (var i = 0; i < result.length; i++) {
Autoarr[i] = result[i].cityname;
}
}
});
<强> AUTOCOMPLETE 强>
$(function () {
$("#category").autocomplete({
source: Autoarr
});
});
答案 1 :(得分:0)
您必须编写带有3种颜色的SQL查询。 1 GT;国家2&gt;状态3&gt;市。 SQL查询应该有3个条件。
如下所示
if(select count(1) from Table where cityname like "@cityname")
begin
select city,state,country from table
end
else if(select count(1) from Table where state like "@statename")
begin
select 1 as city, state,country from table
end
else if(select count(1) from Table where country like "@countryname")
begin
select 1 as city, 1 as state, country from table
end
请使用ajax在json中获取此值。
然后在每个专栏附加','分隔符(例如印度泰米尔纳德邦的Chennai)。
如果任何coloumn值为1,则省略它。例如 (1,泰米尔纳德邦,印度然后省略1.所以泰米尔纳德邦,印度)。你需要用这个例子来思考。如果你有不同的表,那么使用连接。