2013-08-27 118 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. 

这样,你可以展示你的功能,在网页元素返回。