【发布时间】:2012-07-18 16:16:05
【问题描述】:
所以基本上这里是我用于创建数组的 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] with 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);输出,它输出空字符串。
【问题讨论】:
-
也许尝试 print_r($array) 来查看输出?我现在必须跑步,否则我会尽力提供帮助,但也许这会让你继续前进。祝你好运!
-
print_r() 不输出任何内容(空白)。
-
听起来像空对象,所以没有被设置。我确实看到您正在序列化一些内容,但随后您将查询字符串附加到它。在这种情况下,您的阵列似乎会被破坏?
-
您在 Javascript 中设置 myArray,但随后尝试使用 PHP 读取它? PHP 将无法读取 Javascript 变量的值。对我来说现在是凌晨 2 点,所以也许我很模糊,但这就是你正在尝试做的事情,而且似乎不可能。
-
试图通过不序列化,但还是一样。
标签: php javascript jquery html ajax