[英]Sending multidimensional array via ajax
所以基本上这是我用于创建数组的jQuery和HTML代码。 基本上,每个div具有类设置,并检查是否具有属性rel的span,如果具有,则将其插入array下的array中。 每个新的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个元素,一个包含2个元素,但是当我尝试通过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);
在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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.