【问题标题】:jQuery $.ajax to pass multidimensional array to PHPjQuery $.ajax 将多维数组传递给 PHP
【发布时间】:2011-07-09 23:38:47
【问题描述】:

我正在使用 jQuery 和 PHP 将 JSON 数据写入我的服务器。我正在处理大量重复的数字数据(~.75kb),所以我想以多维数组的形式将数据传递给 PHP。

目前我无法以 PHP 可以识别的形式将数据发送到 PHP。我尝试了将发送/接收作为数组和对象的各种组合,但没有成功。

最好的情况是我将数组传递给 PHP,然后 PHP 将其转换为可读形式。我宁愿不使用关联数组或 Javascript 的任何序列化。

代码...这给了我一个 500 内部服务器错误,如果我省略传递的数据变量,它将不再发生。 (我还没有在 php 文件中使用 $data,因为我知道它不起作用。)

函数生成数据(){ // 这里的代码 return [ one[ sub_one[], sub_two[] ], two[], three[],four[] /* 等等... */ ] } 函数保存数据(){ $.ajax({ 网址:“脚本/save.php”, 数据: { “区域”:“测试”, “位置”:“测试”, “名称”:“测试”, “数据”:生成数据() } }); }
<?php
    $area = $_GET['area'];
    $location = $_GET['location'];
    $name = $_GET['name'];
    $data = $_GET['data']);

    # Performing operations with variables...

    echo 1;
?>

感谢您提供的任何帮助。

【问题讨论】:

  • 你多了一个括号:$data = $_GET['data']);
  • 所以我愿意... 500 内部服务器错误消失了,我现在正在获取 $data。我会尝试转储 $data 并查看是否可以访问其中任何一个。
  • 您应该将数据作为 JSON 传递。
  • JSON 可以作为 PHP 中的关联数组访问,那么当我可以一步完成时,为什么还要采取额外的步骤来序列化 JSON 并将其传递给 PHP 以将其格式化为我的文件呢?
  • 简短评论,您不能通过网络发送对象。不是从 javascript 到 php,也不是从我的电脑到你的电脑,总是需要涉及某种序列化和反序列化,但是,在你的情况下,jQuery 和 PHP 会为你解决这个问题:)。

标签: javascript jquery ajax json multidimensional-array


【解决方案1】:

找到解决办法:

"data": {
    data: generateCellData()
}

上面的代码将数据作为对象传递给 PHP,我可以通过 $data("data") 访问原始数组。当我已经将数据和其他参数作为对象传递时,为什么这会起作用,我仍然有些困惑。

【讨论】:

    猜你喜欢
    • 2015-01-16
    • 1970-01-01
    • 2015-08-21
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多