2012-07-18 116 views
1

所以基本上这里是我的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);,它输出空字符串。

+0

也许尝试print_r($ array)来查看输出?我必须现在就跑,否则会试图帮助,但也许会让你走。祝你好运! – 2012-07-18 08:01:15

+0

print_r()不输出任何内容(空白空间)。 – y2ok 2012-07-18 08:02:42

+0

听起来像空物体,所以没有设置。我确实看到你正在序列化一些内容,但是你添加了一个查询字符串。看起来你的阵列在这种情况下会被打破? – 2012-07-18 08:04:40

回答

2

入住格式转换到JSON在浏览器控制台(部分网络)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

+0

它返回两个输入,如果我做json_cedore(...,true);它之后不显示任何内容。 – y2ok 2012-07-18 08:23:41

+0

谢谢,它的工作,发现问题;)! – y2ok 2012-07-18 08:32:16

-1

倒不如把它发布的数据

+0

忘了提及我也试图用JSON传递它,但它也返回了空的空间。 – y2ok 2012-07-18 08:05:48