有人能告诉我这里做错了什么吗。我在屏幕上有几个.cp_select
类的元素。我需要循环浏览它们并获取";x〃;以及";y";。这本身就很好。然后,我需要组装一个带有子数组positions
的JSON
obj,并将每个循环的x/y集推入其中。然后,我将在PHP中使用带有json_decode()
的数组,循环通过该子positions
,并在PHP端处理它。我好像就是想不通。有什么想法吗?
$(".pix_select_btn").click(function() {
var poz = {}
var poz_xy = {}
$(".cp_select").each(function() {
var pix = $(this)
poz_xy = {"x" : pix.attr("x"), "y" : pix.attr("y")};
poz['positions'].push(pos_xy)
});
alert(JSON.stringify(poz))
console.log();
})
您必须先创建数组,然后才能推入其中。
$(".pix_select_btn").click(function() {
var poz = {positions: []}
$(".cp_select").each(function() {
var pix = $(this)
var poz_xy = {
"x": pix.attr("x"),
"y": pix.attr("y")
};
poz.positions.push(pos_xy)
});
console.log(JSON.stringify(poz));
})
您也可以使用map()
来简化它。
$(".pix_select_btn").click(function() {
var poz = {
positions: $(".cp_select").map(function() {
var pix = $(this)
return {
"x": pix.attr("x"),
"y": pix.attr("y")
};
}).get(); // .get() converts from jQuery object to array
}
console.log(JSON.stringify(poz));
})
请记住,PHP在服务器中运行,JS在客户端中运行,因此您无法在PHP中使用var poz。
您需要发送一个XHR请求来捕获服务器端的值。