gpt4 book ai didi

javascript - jQuery AJAX 后数组

转载 作者:行者123 更新时间:2023-12-02 17:04:14 26 4
gpt4 key购买 nike

我有这个 JavaScript 数组:

testarr = new Array();
testarr[0] = new Array();
testarr[0]["#FFFFFF"] = "White";
testarr[0]["#FFFFFF"] = new Array();
testarr[0]["#FFFFFF"]["#FFFFFA"] = "A";
testarr[0]["#FFFFFF"]["#FFFFFB"] = "B";

testarr[0]["#000000"] = "Black";
testarr[0]["#000000"] = new Array();
testarr[0]["#000000"]["#000001"] = "A1";
testarr[0]["#000000"]["#000002"] = "B1";

我使用这个 jQuery AJAX post 方法:

$.ajax({
type: 'POST',
url: 'backEndFile.php',
dataType: 'json',
data: {cat:testarr},
success: function(data) {
if (data.success === true) {
alert("SUCCESS");
} else {
alert("NOT SUCCESS")
}
}
});

我的 backEndFile.php

<?php
var_dump($_POST);
?>

在 backEndFile var dump 中打印:array(0) {} not find me post array。

如果我将数组键从字符串更改为数字,如下所示:

testarr[0] = new Array();
testarr[0][0] = "White";
testarr[0][0] = new Array();
testarr[0][0][0] = "A";
testarr[0][0][1] = "B";

testarr[0][1] = "Black";
testarr[0][1] = new Array();
testarr[0][1][0] = "A1";
testarr[0][1][1] = "B1";

然后正确打印

最佳答案

JavaScript 数组设计用于保存具有顺序数字键名的数据。

当 jQuery 为 Ajax 请求序列化它们时,它只会包含数字键(因为它是一个数组,所以为什么要在上面放置命名键?)。

如果您想要命名键,请使用对象,而不是数组

testarr = new Array();
testarr[0] = new Object();
testarr[0]["#FFFFFF"] = "White";
testarr[0]["#FFFFFF"] = new Object();
testarr[0]["#FFFFFF"]["#FFFFFA"] = "A";
testarr[0]["#FFFFFF"]["#FFFFFB"] = "B";

testarr[0]["#000000"] = "Black";
testarr[0]["#000000"] = new Object();
testarr[0]["#000000"]["#000001"] = "A1";
testarr[0]["#000000"]["#000002"] = "B1";

请注意,您正在使用数组覆盖白色和黑色值。您可能不想这样做。

(一般来说,与构造函数语法(new Array/新对象))。

testarr = [];
testarr[0] = {};
testarr[0]["#FFFFFF"] = "White";
testarr[0]["#FFFFFF"] = {};
testarr[0]["#FFFFFF"]["#FFFFFA"] = "A";
testarr[0]["#FFFFFF"]["#FFFFFB"] = "B";

testarr[0]["#000000"] = "Black";
testarr[0]["#000000"] = {};
testarr[0]["#000000"]["#000001"] = "A1";
testarr[0]["#000000"]["#000002"] = "B1";

但是你可以全力以赴,只使用文字语法:

testarr = [
{
"#FFFFFF": {
"#FFFFFA": "A",
"#FFFFFB": "B"
},
"#000000": {
"#000001": "A1",
"#000002": "B1"
}
}
];

关于javascript - jQuery AJAX 后数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25407347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com