jquery自动完成功能不起作用?

时间:2011-08-13 01:31:33

标签: php jquery json autocomplete

我想为远程数据源进行自动更新,我从数据库获取所有数据并将其作为jSon返回,使用控制台我看到所有数据都已返回,但自动完成功能不起作用,我的代码中的警报也是如此不起作用,这是我的代码

$("#cellPhoneNo").autocomplete({

    source: function(request, response) {
        var param = {
            "action": "getCellPhoneNos"
        };
        $.getJSON("controllers/Customer.controller.php", param, function(result) {
            alert('here'); //doesn't alert
            //  cellPhoneSource=result;
        });
    },
    select: function(event, ui) {
        alert('response');
    }

});

修改

我尝试使用GET获取源代码,我这样做

source:function(request,response){
            var param= {"action":"getCellPhoneNos"};
            $.ajax({
            type: "GET",
            url: "controllers/Customer.controller.php",
            data: param,
            success: function(result){
            alert('success');
            }

            });
            },

它提醒,但自动完成功能不起作用,我尝试将值放在文本文件中并将文件放在网址中,自动完成功能正常工作!!

任何解释?!

2 个答案:

答案 0 :(得分:1)

http://net.tutsplus.com/tutorials/javascript-ajax/how-to-use-the-jquery-ui-autocomplete-widget/

这是一个使用自动完成插件的教程。回调中的response变量是一个函数,您可以调用该函数将一组项添加到自动完成列表中。解析result并将每个项目推送到数组,然后调用response(array);如果结果已经是数组,则可以调用response(result);

答案 1 :(得分:0)

我注意到在成功函数中你没有从ajax查询返回结果,这可能是个问题吗?

source : function(request,response) {
     var param= {"action":"getCellPhoneNos"};
     var source = 'nothing came back from the server';

     $.ajax({
          type: "GET",
          url: "controllers/Customer.controller.php",
          data: param,
          datatype: 'json'
          success: function(result) {

            if(result !== undefined) {
                 source = result;
            }
            alert(source);
            return source;
          }

     });
},