【问题标题】:Array values returns null数组值返回 null
【发布时间】:2020-12-31 07:52:43
【问题描述】:

我正在使用 ajax 进行发布请求并以 json 格式发送数据。然后我正在使用 php 获取 json 并将其解码为一个数组。当我打印出整个数组时没有问题。我可以看到键值对。但是当我尝试打印出这个数组的索引值之一时,它返回 null。可能是什么问题?这是我的 ajax 请求

$(function() {
    $("#del").click(function() {
        var file_id = 32
        var file_update = 1321321

        var obj = {
            file_id: file_id,
            file_update: file_update
        };

        $.ajax({
            type: "post",
            url: "config/ajax.php",
            data: {
                "file_update": JSON.stringify(obj)
            },
            success: function(response) {
                alert(response);
            }
        })
    })
})

这是我的 php 代码

if (isset($_POST["file_update"])) {
    $file_update = json_decode($_POST["file_update"], true);
    $x = $file_update[0];
    var_dump($x);
    var_dump($file_update);
}

【问题讨论】:

  • 应该是$file_update['file_id']$file_update['file_update']
  • 你为什么使用 JSON?只需使用data: obj,然后您就可以使用$_POST['file_id']$_POST['file_update']
  • 谢谢@Barmar 它成功了。我没想到我可以直接将obj 发送到php
  • {"file_update": JSON.stringify(obj)} 是一个对象,不是吗?那和obj有什么区别?

标签: php jquery json ajax


【解决方案1】:

$file_update 数组是关联的,因此它没有整数键,它的键是字符串

$file_update[0] 不存在,如果您配置了正确的错误报告,此语句应该会引发错误。

如果您想访问特定的数组值,请使用:

$file_update['file_id'];
$file_update['file_update'];

如果要访问关联数组的第一个元素,可以使用以下命令:

$key = array_keys($file_update)[0];
$value = $file_update[$key];

【讨论】:

  • 非常感谢。你是对的,是我的错:)
猜你喜欢
  • 2021-08-11
  • 2015-01-21
  • 2016-04-09
  • 1970-01-01
  • 1970-01-01
  • 2013-05-15
  • 1970-01-01
  • 1970-01-01
  • 2016-07-18
相关资源
最近更新 更多