2015-06-07 122 views
4

大家好我知道这个主题有一些结果,但我不想尝试做任何过于高级的事情,只是想了解基础知识。出于某种原因,此代码的警报工作,并打印出正确的数组信息,但我似乎无法得到它的自动完成工作? https://jqueryui.com/autocomplete/将php数组传递给ajax/jquery

var oReq = new XMLHttpRequest(); //New request object 
oReq.onload = function() { 
    var res = oReq.responseText; 
    AC(res); 
}; 
oReq.open("get", "get-data.php", false); 
oReq.send(); 

function AC(res){ 
$(function() { 
    alert(res); 
    $("#tags").autocomplete({ 
     source: res 
    }); 
}); 
} 

因此警报(RES)的功能AC(工作),但它仍然没有填充源?

我GET-data.php看起来像这样

<?php $arr = array("ActionScript", 
     "AppleScript", 
     "Asp"); 

echo json_encode($arr); ?> 

我会很感激的任何指导,即使我必须寻找更多的

回答

3

JSON.unserialize在JavaScript。

source: JSON.parse(res); 

发生这种情况是由于未解码的JSON。 JSON以字符串形式到达,以便alert()可以正常显示接收到的数据,但是当您发布到源代码时,必须发布Object - 需要将字符串解码为对象。 ;) 产生的代码:

var oReq = new XMLHttpRequest(); //New request object 
oReq.onload = function() { 
    var res = oReq.responseText; 
    AC(res); 
}; 
oReq.open("get", "get-data.php", false); 
oReq.send(); 

function AC(res){ 
$(function() { 
    alert(res); 
    $("#tags").autocomplete({ 
     source: JSON.parse(res) 
    }); 
}); 
} 

HTH

+0

瓦伦丁您好,感谢您的快速反应。我试过你建议的思路,认为这一切都有道理,但仍然不适合我:(还有什么其他的你可以想到的? –

+0

发布您的代码以下作为不同的问题的情况;) –

+1

嗨瓦伦丁我得到它与J​​SON的工作。解析感谢您的逻辑帮助,虽然:) –