大家好,我知道关于这个主题有一些结果,但我并没有尝试做任何太高级的事情,只是试图了解基础知识。出于某种原因,此代码警报有效并打印出正确的数组信息,但我似乎无法让它为自动完成工作? https://jqueryui.com/autocomplete/
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
});
});
}
所以 alert(res) 在函数 AC() 中工作,但它仍然没有填充源?
我的 get-data.php 看起来像这样
<?php $arr = array("ActionScript",
"AppleScript",
"Asp");
echo json_encode($arr); ?>
即使我必须查找更多信息,我也会很感激任何指导
最佳答案
JSON.javascript 中的反序列化。
source: JSON.parse(res);
发生这种情况是由于未解码 JSON。 JSON 作为字符串到达,因此 alert() 可以正常工作以显示接收到的数据,但是当您发布到源时,您必须发布对象 - 需要将字符串解码为对象。 ;) 结果代码:
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
关于javascript - 将 php 数组传递给 Ajax/jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30691442/