【问题标题】:Send nested array via jQuery .ajax通过 jQuery .ajax 发送嵌套数组
【发布时间】:2012-01-24 09:00:23
【问题描述】:

我有一个数组,其中每个元素都是一个数组,如下所示:

results = {
              {1, "A", 11, 0, 7, 0},
              {2, "A", 13, 2, 2, 1},
              {3, "A",  7, 0, 2, 2}
          }

我想知道如何通过 jQuery 的 .ajax 函数将其发送到 PHP?

我现在的 jQuery 调用看起来像:

$.ajax({type: "POST",
        url:  "updateResults.php",
        data: "results="+results,
        success: function(data) {
            if(data == "ok") {
                $("#msgSuccess").show();
            } else {
                $("#msgError").show();
            }
        }
});

谢谢!

【问题讨论】:

标签: php javascript jquery ajax multidimensional-array


【解决方案1】:

如果结果是字符串格式,那么这是有效的Fiddle

var results = '{{1, "A", 11, 0, 7, 0}, {2, "A", 13, 2, 2, 1}, {3, "A",  7, 0, 2, 2}}';
results = results.replace(/{/gi, '[');
results = results.replace(/}/gi, ']');
results = eval(results); //This is your array format which can be sent as JSON request data

$.each(results, function(index, item){
    $.each(item, function(ind, it){
        alert(it);
    });
});

【讨论】:

    【解决方案2】:

    最简单的方法是使用data的对象:

    data: {results: data};
    

    如果你这样做,jQuery 会自动对数据进行 URI 编码,这比自己搞乱字符串连接更有优势。

    【讨论】:

      【解决方案3】:

      使用 serializeArray() http://api.jquery.com/serializeArray/

      【讨论】:

        猜你喜欢
        • 2013-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-20
        • 2019-04-19
        • 2011-11-19
        • 2016-12-04
        相关资源
        最近更新 更多