通过ajax发送多维数组

时间:2012-07-18 07:55:03

标签: php javascript jquery html ajax

所以基本上我的jQuery和HTML代码用于创建数组。它基本上采用每个div进行类设置并检查它是否具有属性rel的跨度,如果有,则在数组下插入数组。每个新的div.settign span rel属性都将插入到同一父数组下的另一个数组中。

检查此代码以了解它 - 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);,它输出空字符串。

2 个答案:

答案 0 :(得分:2)

在浏览器控制台(部分网络)中检查AJAX请求中发布数据的格式。

您可以在this stackexchange question中找到有关在浏览器中打开控制台的信息。

JSON-js - JavaScript中的JSON。

要将对象转换为JSON,请使用JSON.stringify

var json_text = JSON.stringify(your_object, null, 2);

将数组编码为JSON,然后使用Ajax请求发送它。要在PHP中解码JSON,请使用json_decode

答案 1 :(得分:-1)

将它转换为json

会更好