2013-08-27 87 views
0
<script type="text/javascript"> 
$(document).ready(function(){ 
$('#tags').autocomplete({ 
source:function(request,response){ 
     $.ajax({ 
     type: "POST", 
     data: "", 
     url: 'getplacetags.php', 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (data) { 
      var resultSet = data; 
      var arr=[]; 
      for(var i in resultSet) 
      { 
       arr.push(resultSet[i]) 
      } 
      return arr; 
    }, 
    error: function() { 
     alert('failure'); 
    } 
}); 
    } 
}); 
}); 
</script> 

HTML-:從PHP返回數組到jQuery自動完成不起作用。

<input type="text" id="tags" /> 

我有在返回陣列自動完成功能的問題。數組arr未顯示在文本框中的自動完成中爲什麼?

JSON數據檢索從getplacetags.php

+0

那麼,你正在做一個郵政通話,但你沒有發送任何數據。 data:「」也許使用$ .get()來檢索數據是個好主意。 –

+0

@ Ignacio Belhot Colistro-當您沒有任何數據要發送時應該完成哪種類型的呼叫? – bhawin

+0

我上面編輯了我的評論,@bhawin –

回答

0

不要使用return arr;而不是寫

response(arr); 

即發送您的ARR您在response

+0

你可以給一些鏈接,以瞭解請求和響應如何工作 – bhawin

+0

對不起,我找不到任何使用'response'的綜合示例。我能找到的最接近的東西是http://jqueryui.com/autocomplete/#multiple-remote –

0

罰款我已經檢查你的代碼,我發現它工作正常後刪除「的contentType」。

$('#tags').autocomplete({ 
    source:function(request,response){ 
     $.ajax({ 
      type: "POST", 
      data: "", 
      url: 'http://ws.geonames.org/searchJSON', 
      dataType: "json", 
      success: function (data) { 
       alert('success'); 
      }, 
      error: function() {  
       alert('failure'); 
      } 
     }); 
    } 
}); 

請查看這裏的工作代碼: http://jsfiddle.net/Qy49d/

0

得到這裏的回調函數一個非常相似的問題: how get php respone from jquery .load 如果你想要做的是從一個頁面抓取信息,不發送任何數據給它,那麼你就可以做到以下幾點:

<script type="text/javascript"> 
$.get("getplacetags.php", function(retrievedinfo) { 
    alert("Here's the data you requested: " + retrievedinfo); 
    if (retrievedinfo) { 
     //Success 
     //print out something here 
    } 
}); 
</script> 

這不是解決問題的一個非常乾淨的方式,但它是這樣短。 另外,如果你想展示一些東西中的一個元素,例如像展示一個數組,你應該做到以下幾點:

實際上,有兩種方法,我知道的:

$("#yourElementID").html(retrievedinfo); //Where retrievedinfo would be your returned array. 

$("#yourElementID").text(retrievedinfo); //Where retrievedinfo would be your returned array. 

這樣,你可以展示你的功能,在網頁元素返回。