1

所以基本上这里是我用于创建数组的 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 请求略有不同。

你能检查一下到底是什么问题吗?

编辑:

刚刚尝试print_r($myArray);在php端输出,它输出空字符串。

4

2 回答 2

2

在浏览器控制台(部分网络)中检查 AJAX 请求中发布数据的格式。

您可以在此 stackexchange 问题中找到有关在浏览器中打开控制台的信息。

JSON-js - JavaScript 中的 JSON。

要将对象转换为 JSON,请使用JSON.stringify

var json_text = JSON.stringify(your_object, null, 2);

将您的数组编码为 JSON,然后使用 Ajax 请求发送。要在 PHP 中解码 JSON,请使用json_decode

于 2012-07-18T08:08:47.643 回答
0

最好将其转换为json

于 2012-07-18T08:04:14.993 回答