1

我有以下代码。

ajax 查询有效,从服务器返回的数据是有效的 json。
通过这样的请求,我成功地使自动完成下拉菜单与远程数据源一起工作:http: //jqueryui.com/demos/autocomplete/#remote

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

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;
            }

        });

    }

});
4

2 回答 2

2

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) {
                if (data.d != null) {
                    response($.map(data.d, function (item) {
                        return {
                            value: item.name
                        }
                    }));
                }

            }
    });
}

});

于 2012-11-07T11:56:28.310 回答
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 ”...

于 2012-11-12T04:36:39.890 回答