所以基本上我的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);
,它输出空字符串。
答案 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
会更好