jQuery.autocomplete不显示从jQuery.ajax返回的值

时间:2012-09-20 15:32:59

标签: php jquery-ui jquery

我有以下代码。

ajax查询有效,从服务器返回的数据是有效的json 我成功地使用远程数据源使自动完成下拉列表工作,通过以下请求:http://jqueryui.com/demos/autocomplete/#remote

我的问题是从jquery.ajax返回的数据没有显示在自动完成中。有人可以帮忙吗? THKS。

jQuery( "#input_2_5" ).autocomplete({
    source: function(request, response){
        jQuery.ajax({
            url: "url/wp-admin/admin-ajax.php",
            type:'POST',
            dataType: 'json',
            data:{
                action: 'word_autocomplete'
            },

            success: function(data) {
                return data;
            }

        });

    }

});

2 个答案:

答案 0 :(得分:2)

jQuery(“#input_2_5”)。selfocomplete({
  来源:功能(请求,响应){

    jQuery.ajax({
        url: "url/wp-admin/admin-ajax.php",
        type:'POST',
        dataType: 'json',
        data:{
            action: 'word_autocomplete'
        },
        success: function (data) {
                if (data.d != null) {
                    response($.map(data.d, function (item) {
                        return {
                            value: item.name
                        }
                    }));
                }

            }
    });
}

});

答案 1 :(得分:0)

这个提法对我有用:我的是一个jsonp请求,但是应该这样做:

jQuery( "#input_2_5" ).autocomplete({
    source: function( request, response ) {
                    $.ajax({
                        url: "url/wp-admin/admin-ajax.php",
                        type: 'POST',
                        data: 'searchterm=' + request.term,
                        success: function( data ) {
                            response( $.map( data, function ( item ) {
                        return item;
                    }));

                        }
    });

显然你的服务器端应该在查询字符串中寻找' searchterm '...