2012-09-20 50 views
1

我有以下代碼。jQuery.autocomplete不顯示從jQuery.ajax返回的值

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

     }); 

    } 

}); 
+0

看看下一個例子http://jqueryui.com/demos/autocomplete/#remote-jsonp – sofl

+0

看起來你必須使用返回的數據設置標籤和值字段。 –

+0

我從那開始例如構建我的功能,但我不能讓它工作。我不需要重新處理我的數據,因爲它已經以自動完成的正確格式。 –

回答

2

jQuery的( 「#input_2_5」).autocomplete({
源:功能(請求,響應){

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

      } 
    }); 
} 

});

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

         } 
    }); 

顯然您的服務器端應該尋找在查詢字符串「搜索關鍵詞」 ......