【问题标题】:Sending multidimensional array via ajax通过ajax发送多维数组
【发布时间】: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


【解决方案1】:

在浏览器控制台(部分网络)中检查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

【讨论】:

  • 它返回两个输入,如果我做 json_cedore(..., true);之后它不会显示任何内容。
【解决方案2】:

最好转成json格式

【讨论】:

  • 忘了说我也尝试用 JSON 传递它,但它也返回了空白空间。
猜你喜欢
  • 2013-04-22
  • 1970-01-01
  • 2016-07-25
  • 2011-01-03
  • 2021-06-01
  • 1970-01-01
  • 2016-04-20
  • 1970-01-01
  • 2014-12-10
相关资源
最近更新 更多