主要是想实现从数据库读取数据生成json 格式的数据,然后使用autocomplete,但是现在老是完不成功能,请大家帮帮忙,谢谢!
从网上下在了最新的jquery ui,按照网页的例子数组数据能够正常显示,然后又试了网页上的jsonp协议传来的数据,用例子的代码也没有问题,但是我这里不需要用jsonp协议,只需要用返回的json格式数据就可以了,最开始按照例子使用如下方法: $(function() {
$( "#tags" ).autocomplete({
source: "listofname.asp", //原例子上面是search.php
minLength: 2
});
});因为我注意到最下的说明写的是 search.php 返回json格式的数据,所以我这个试了下,但是没有出来提示。
这里的listofname.asp使用json 官方提供的方法来得到的json格式数据,内容如下:<!--#include file="JSON_2.0.4.asp"-->
<!--#include file="JSON_UTIL_0.1.1.asp"-->
<%
Dim member,connstr,strsql
connstr="DBQ="+server.mappath("tijian.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
strsql="select name from tb1"
QueryToJSON(conn, strsql).Flush
%>文件单独执行输出的内容如下:
[{"name":"CZN"},{"name":"CC"},{"name":"CGY"},{"name":"CM"},{"name":"CPA"},{"name":"CXL"},{"name":"CY"},{"name":"CWJ"},{"name":"C T"},{"name":"CAH"},{"name":"CAT"},{"name":"CB"},{"name":"CBQ"},{"name":"CCY"},{"name":"CC"},{"name":"CC"},{"name":"CC"},{"name":"CC"},{"name":"CC"},{"name":"CCG"},{"name":"CDW"}]
============================
然后在网上查找,看见这样返回的数据需要解码,于是按照网上的方法又试了,$(document).ready(function()
{
var acOptions =
{
minChars: 1,
max: 100,
dataType: 'json',
extraParams: {
format: 'json' },
parse: function(data) {
// alert(data); // 这里我测试了下根本没有数据
var parsed = [];
for (var i = 0; i < data.length; i++) {
parsed[parsed.length] = {
data: data[i],
value: data[i].name,
result: data[i].name
};
}
return parsed;
},
formatItem: function(item) {
return item.name;
}
};
$("#tags").autocomplete("listofname.asp",acOptions);
});用这个方法也不成功,然后在网上查找了其他方法和这个都比较类似,也不成功,在parse: function(data) {alert(data);}这里都没有数据显示出来。
请大家帮帮忙,应该怎样做才能使从数据库读取的json数据显示出来。谢谢!!!!
从网上下在了最新的jquery ui,按照网页的例子数组数据能够正常显示,然后又试了网页上的jsonp协议传来的数据,用例子的代码也没有问题,但是我这里不需要用jsonp协议,只需要用返回的json格式数据就可以了,最开始按照例子使用如下方法: $(function() {
$( "#tags" ).autocomplete({
source: "listofname.asp", //原例子上面是search.php
minLength: 2
});
});因为我注意到最下的说明写的是 search.php 返回json格式的数据,所以我这个试了下,但是没有出来提示。
这里的listofname.asp使用json 官方提供的方法来得到的json格式数据,内容如下:<!--#include file="JSON_2.0.4.asp"-->
<!--#include file="JSON_UTIL_0.1.1.asp"-->
<%
Dim member,connstr,strsql
connstr="DBQ="+server.mappath("tijian.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
strsql="select name from tb1"
QueryToJSON(conn, strsql).Flush
%>文件单独执行输出的内容如下:
[{"name":"CZN"},{"name":"CC"},{"name":"CGY"},{"name":"CM"},{"name":"CPA"},{"name":"CXL"},{"name":"CY"},{"name":"CWJ"},{"name":"C T"},{"name":"CAH"},{"name":"CAT"},{"name":"CB"},{"name":"CBQ"},{"name":"CCY"},{"name":"CC"},{"name":"CC"},{"name":"CC"},{"name":"CC"},{"name":"CC"},{"name":"CCG"},{"name":"CDW"}]
============================
然后在网上查找,看见这样返回的数据需要解码,于是按照网上的方法又试了,$(document).ready(function()
{
var acOptions =
{
minChars: 1,
max: 100,
dataType: 'json',
extraParams: {
format: 'json' },
parse: function(data) {
// alert(data); // 这里我测试了下根本没有数据
var parsed = [];
for (var i = 0; i < data.length; i++) {
parsed[parsed.length] = {
data: data[i],
value: data[i].name,
result: data[i].name
};
}
return parsed;
},
formatItem: function(item) {
return item.name;
}
};
$("#tags").autocomplete("listofname.asp",acOptions);
});用这个方法也不成功,然后在网上查找了其他方法和这个都比较类似,也不成功,在parse: function(data) {alert(data);}这里都没有数据显示出来。
请大家帮帮忙,应该怎样做才能使从数据库读取的json数据显示出来。谢谢!!!!
http://jqueryui.com/demos/autocomplete/#remote-jsonp$(function () {
var cache = {},
lastXhr;
$("#birds").autocomplete({
minLength: 2,
source: function (request, response) {
var term = request.term;
if (term in cache) {
response(cache[term]);
return;
} lastXhr = $.getJSON("search.php", request, function (data, status, xhr) {
cache[term] = data;
if (xhr === lastXhr) {
response(data);
}
});
}
});
});
$("#birds").result(function(event,item,formatted){
$(this).val(item.name);
});
相同级别
$("#birds").result(function(event,item,formatted){
$(this).val(item.name);
});
要报错,不知道是不是没有 .result 这个方法了
谢谢大家!