代码之家  ›  专栏  ›  技术社区  ›  tshauck

成功时将数组获取到.ajax

  •  0
  • tshauck  · 技术社区  · 15 年前

    我试图在成功时将数据作为数组返回到.ajax函数,这样我可以做很多事情,但是除了一个值之外,我什么都做不到。比如回报$foo。但是当我返回$array时,页面永远不会加载。

    3 回复  |  直到 15 年前
        1
  •  0
  •   Anh-Kiet Ngo    15 年前

    您必须将数据序列化为字符串。我的首选是JSON,所以如果您的PHP版本是>=5.2.0,那么您很可能可以访问 json_encode 功能。这将把PHP对象转换成JSON字符串。如果您没有访问json_encode的权限,可以使用 PECL JSON package .

    看看你引用“.ajax”函数的方式,我假设jquery。只要将内容类型设置为“json”,json响应将生成本机javascript对象。例如,

    PHP

    return json_encode(array(1, 2, 3));
    

    JavaScript

    $.ajax({
        ...
        contentType: 'json',
        success: function(response) {
        for (var i = 0; i < response.length; i++) {
            alert(response[i]);
        }
    });
    

    此代码应进入警报1、2,然后进入3。

    我还没有验证代码,但基本部分都在那里。不过值得注意的是,普通的索引数组会变成一个javascript列表,而关联数组会变成一个javascript对象。

        2
  •  1
  •   Knowledge Craving    15 年前

    与PHP的处理相比,javascript对数组的使用和利用是不同的。因此,要么您需要将数据作为JSON(javascript对象表示法)发送到Ajax函数,要么您需要将数据作为带有公共分隔符的字符串发送到Ajax函数。

    在后一种情况下,需要使用该公共分隔符拆分Ajax函数中的响应文本,以组成JS数组。然后,使用该数组将非常容易。

    希望它有帮助。

        3
  •  0
  •   Siva    15 年前

    JSON是将数据数组从PHP发送到JavaScript的一个好选择。在php端,只需将数据数组编码并返回为json字符串,在javascript端,将该json字符串解码并用作普通数组。

    假设您的数据数组 $array ,在PHP代码中,只需使用 json_encode($array) 并返回结果的JSON字符串。

    在您的javascript代码中,使用成功回调函数中的“eval”函数解码JSON字符串,如下所示:

    $.ajax({
       type: "GET",
       url: "test.php",
       success: function(data) {
        var dataArray = eval('(' + data + ')');
      }
     });
    

    我想这对你有帮助…

    湿婆

    推荐文章