【问题标题】:passing php array to Ajax/jQuery将 php 数组传递给 Ajax/jQuery
【发布时间】:2015-08-21 20:59:22
【问题描述】:

大家好,我知道关于这个主题有一些结果,但我并不想做任何太高级的事情,只是想了解基础知识。出于某种原因,此代码警报有效并打印出正确的数组信息,但我似乎无法让它为自动完成工作? 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); ?>

即使我需要查找更多信息,我也会很感激任何指导

【问题讨论】:

    标签: javascript php jquery ajax jquery-ui


    【解决方案1】:

    JavaScript 中的 JSON.unserialize。

    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

    【讨论】:

    • 您好 Valentin,感谢您的快速回复。我尝试了您建议的路线,认为这一切都有意义,但仍然不适合我:(您还能想到其他什么吗?
    • 在下面发布您的代码作为不同的问题案例;)
    • 嗨 Valentin 我得到了它与 JSON.parse 的合作,但感谢您的逻辑帮助:)
    • 对不起,我的错 :( JSON.parse()。无论如何,^_^ 中的逻辑
    猜你喜欢
    • 2015-08-07
    • 2011-07-09
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    相关资源
    最近更新 更多