【问题标题】:Using jQuery and AJAX to pass JSON data to PHP使用 jQuery 和 AJAX 将 JSON 数据传递给 PHP
【发布时间】:2011-10-27 02:39:47
【问题描述】:

我有一个使用以下内容的 AJAX 调用;

$.ajax({
    type: "POST",
    url: "php/customheader.php",
    data: { 
        update: 1,
        header : {
            1 : custom[1].header,
            2 : custom[2].header,
            3 : custom[3].header,
            4 : custom[4].header
        },
        header_key : {
            1 : custom[1].key,
            2 : custom[2].key,
            3 : custom[3].key,
            4 : custom[4].key
        }
    },
    dataType : 'json',
    success: function(data) ajaxSuccessCallback(this_dialog, data)

});

在 PHP 端,我正在努力将这些数据放入适当的关联数组中,以便在循环等中使用。我已经尝试过;

$_POST['update']

返回1。所以我知道当数据不在关联/多维数组中时如何使用 JSON -> PHP。

然而调用它;

$_POST['header[1]']

什么都不返回。

在 PHP 中将这些多维数据转换为适当格式以进行迭代的最佳方法是什么?

谢谢,

【问题讨论】:

  • 正确的方法是$_POST['header'][1]
  • 在您的 php 脚本中执行 print_r($_POST);,然后您应该更清楚如何访问所需的数据。
  • 如何将$_POST['header'] 作为数组返回?因此,如果; $_POST['header'][1] = 1 $_POST['header'][2] = 3 $_POST['header'][3] = 5 要获得header = [1, 3, 5],我该怎么打电话?

标签: php ajax arrays json


【解决方案1】:

你试过$_POST['header']吗?

【讨论】:

  • print_r ($_POST['header']); 产生Array。如果它起作用了,它不应该打印出整个数组吗?
  • var_dump($_POST) 将为您提供更多信息。
【解决方案2】:

先在客户端先转换成json文本 例如

var obj = {'update':1,'header':{'key1':custom[1].key,'key2':custom[2].key,'keyN':custom[N].key},...}
var jsonstring = JSON.stringify(obj);

设置对象后,使用 stringify 函数将其转换为 JSON 字符串(请阅读有关 json 格式的更多信息,它将帮助您正确设置对象),使用 $.get() 或 $ 发送.post() (使 ajax 请求更容易)

//example
$.get("serverside.php",{'data':jsonstring});

然后在服务器端假设你在客户端使用了 $.get() ,你会说

$str = $_GET['data'];
$Obj = json_decode($str,true);

那么你现在可以说:

echo $Obj['update'];

我希望这会有所帮助,请注意,前面还有很多调试,所以要好好利用互联网

【讨论】:

    猜你喜欢
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 2014-01-09
    • 2012-01-26
    • 2015-08-21
    相关资源
    最近更新 更多