繁体   English   中英

通过ajax发送多维数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM