所以基本上这里是我的jQuery和HTML代码来创建数组。基本上每个div都带有类设置,并检查它是否具有属性rel,如果有,则将其插入数组下的数组中。每个新的div.settign span rel属性将被插入到同一父数组下的另一个数组中。通过ajax发送多维数组
检查此代码以了解它 - http://jsfiddle.net/xVuHx/。
粘贴它也在这里 -
jQuery(document).ready(function() {
var rel = [];
jQuery(".setting").each(function() {
rel.push(jQuery(this).find('span[rel]').map(function() {
return this.getAttribute('rel');
}).get());
});
jQuery("body").text(rel);
});
和HTML -
<div class="setting">
<span rel="Variable">Variable</span>
<span rel="Item">Item</span>
<span rel="Something">Something</span>
</div>
<div>
<span rel="Smth">Smth</span>
<span>Sec</span>
</div>
<div class="setting">
<span>Second</span>
<span rel="first">First</span>
<span rel="Third">Third</span>
</div>
它是伟大的工作,并显示两个数组 - 一个有3个元素和一个有两个,但是当我试图通过它通过ajax到PHP文件,ti给我[object Object] var_dump($ array); 。此外,我试图做foreach,但它告诉我,无效的参数传递给foreach语句,所以我想我正在发送数组错误地ajax或数组不正确。
这里是我的Ajax代码 -
var myArray = jQuery(this).sortable("serialize") + "&type="+rel+"&action=update_homepage";
jQuery.post("'.admin_url("admin-ajax.php").'", myArray, function(response){
var info = response.slice(0,-1);
});
这Ajax代码是通过WordPress的制作,所以它的Ajax请求不同于默认AJAX请求一点点。
请问您能检查究竟是什么问题?
编辑:
在PHP侧只是试图输出与print_r($myArray);
,它输出空字符串。
也许尝试print_r($ array)来查看输出?我必须现在就跑,否则会试图帮助,但也许会让你走。祝你好运! – 2012-07-18 08:01:15
print_r()不输出任何内容(空白空间)。 – y2ok 2012-07-18 08:02:42
听起来像空物体,所以没有设置。我确实看到你正在序列化一些内容,但是你添加了一个查询字符串。看起来你的阵列在这种情况下会被打破? – 2012-07-18 08:04:40