通过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 –
Variable Item Something Smth Sec Second First Third
它运行良好并显示两个数组 – 一个有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请求略有不同。
请问你能检查一下究竟是什么问题?
编辑:
刚尝试用print_r($myArray);
输出print_r($myArray);
在php端,它输出空字符串。
在浏览器控制台(部分网络)中检查AJAX请求中发布数据的格式。
您可以在此stackexchange问题中找到有关在浏览器中打开控制台的信息。
JSON-js – JavaScript中的JSON。
要将对象转换为JSON,请使用JSON.stringify
:
var json_text = JSON.stringify(your_object, null, 2);
将数组编码为JSON,然后使用Ajax请求发送它。 要在PHP中解码JSON,请使用json_decode
将它转换为json会更好