主要是想实现从数据库读取数据生成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数据显示出来。谢谢!!!!

解决方案 »

  1.   

    不懂php,换个其他写法试试http://jqueryui.com/demos/autocomplete/#remote-with-cache
    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);
                    }
                });
            }
        });
    });
      

  2.   

    谢谢,我试了下,还是没有提示出现,但是已经可以看到 data 是有内容的了。
      

  3.   

    你再写一段下面的试试
     $("#birds").result(function(event,item,formatted){
                $(this).val(item.name);
              });
      

  4.   

    $( "#tags" ).autocomplete
    相同级别
      

  5.   

    不知道是不是版本的问题,加了
    $("#birds").result(function(event,item,formatted){
      $(this).val(item.name);
      });
    要报错,不知道是不是没有 .result 这个方法了
      

  6.   

    用其他方法实现了,我加了.result 方法后老是报错。
    谢谢大家!