gpt4 book ai didi

javascript将数组转换为对象以通过ajax发送数据

转载 作者:行者123 更新时间:2023-12-02 20:00:56 33 4
gpt4 key购买 nike

我想通过ajax发送数据列表。所以我将所有数据推送到二维数组中

但是jquery的ajax不接受数组数据,数据必须是对象或查询字符串

由于javascript的Object没有push功能,所以我必须使用数组来构建数据列表。jquery或javascript中有什么函数吗,让我来

var countLine=$("line").length;
var lines=$("line");
var lineArr=new Array();
var linesArr=new Array();
var x1, y1, x2, y2;
for(i=0; i<countLine; i++)
{
lineArr['x1']=lines[i].getAttributeNS(null, "x1");
lineArr['y1']=lines[i].getAttributeNS(null, "y1");
lineArr['x2']=lines[i].getAttributeNS(null, "x2");
lineArr['y2']=lines[i].getAttributeNS(null, "y2");
linesArr.push(lineArr);
}
$.ajax({
type: "POST",
url: "test.php",
data: linesArr,

async: true,
cache: false,

success: function(data){
$("#txt").text(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
alert("fail");
}
});

最佳答案

改变

data: linesArr

data: { linesArr: linesArr }

这将发送一个具有单个属性的对象,“linesArr”,其中包含数组的值。

<小时/>

编辑:你有一个更大的问题。您正在尝试将非数字属性存储在数组中,如以下行所示:

lineArr['x1']=lines[i].getAttributeNS(null, "x1");

您还可以在每次循环中重用相同的 lineArr“数组”。下面的代码会工作得更好:

var lines = $("line");
var linesArray = [];

for (var i = 0; i < lines.length; ++i) {
var line = lines[i];

linesArray.push({
x1: line.getAttributeNS(null, "x1"),
y1: line.getAttributeNS(null, "y1"),
x2: line.getAttributeNS(null, "x2"),
y2: line.getAttributeNS(null, "y2")
});
}

然后您将访问您的数据,例如 $_POST["linesArr"][0]["x1"]

关于javascript将数组转换为对象以通过ajax发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8015069/

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