php - JSON/PHP 未正确解析

标签 php javascript json

首先我会指出问题,基本上在我的 $.each(data, function (i, v) { 代码中它返回一堆变量,这些变量是从 <使用 json_encode 的 strong>PHP 代码,但是当尝试放置这些变量甚至 alert() 它们时,它显示 undefined i我尝试了很多方法来实际显示数据,但它总是返回 undefined 我不知道为什么,因为我的代码在我看来是有效的。

我目前的javascript代码如下

$.ajax({
        url: "functions/ajax.php",
        data: "func=auto",
        type: "GET",
        dataType: "json",
        success: function(data){
                $.each(data, function (i, v) {
                            var name = v['name'];
                            var player_id = v['id'];
                            alert(player_id);
                });
        },
        error: function (jqXHR, textStatus, errorThrown){
            console.log('Error ' + jqXHR);
        }
});

我目前的PHP代码如下

$res = $DB->Query("SELECT * FROM `inventory` WHERE `account_id` = '$_SESSION[ID]'");
$data = array();
while($player = $DB->fetch_assoc()) {   
        $data['name'] = $player['name'];
        $data['id'] = $player['player_id'];
}
header('Content-type: application/json');
echo json_encode($data);

只是总结一下,当在 player_id 上使用 alert() 时,它返回 undefined 显然我希望它返回正确的值

最佳答案

您发送的不是多级数组,而是仅包含两个元素的数组。例如你的 JS 代码应该是

    success: function(data){
               var name = data['name'];
               var player_id = data['id'];
             }

如果该数据库查询 应该发回多条记录,那么您构建它是错误的:

while($player = $DB->fetch_assoc()) {   
   $data[] = array('name' => $player['name'], 'id' => $player['player_id']);
}
echo json_encode($data);

然后您的 $.each() 代码应该开始工作,因为您正在发回一个多维数组/对象。

关于php - JSON/PHP 未正确解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15397130/

相关文章:

php - 连接/合并两个数组

javascript - 如何检查按钮是否被禁用?

php json解析对象

javascript - 遍历Json并只返回部分属性

android - 带有 GsonConverterFactory 的 Retrofit 2.0 为名称中包含非英文字母的字段返回 null

PHP MySQL PDO::exec 不会引发或抛出多命令脚本的错误

php - 无法找到由 OUTFILE 创建的文件

javascript - 在不更改 $scope 的情况下强制重新编译过滤后的 ng-attr

javascript - 使用纯 Javascript 制作 SVG 动画

php - 检查 mysql php 中是否存在记录