无法显示 JSON 对象

问题描述 投票:0回答:3

如果我使用 dataType:'json':

,我收到的错误是这样的

未捕获类型错误:无法读取未定义的属性“长度”

如果我使用

dataType:'html'
那么我可以在控制台中看到从 php 页面传递的数组,如下所示:

[{
    "type": ["4 wheeler", "flying car", "test type"],
    "maker": ["Honda", "Audi", "test car"],
    "rate": [
        ["0", "78"],
        ["0", "56"],
        ["0", "34"],
        ["2", "78"],
        ["2", "56"],
        ["2", "34"],
        ["1", "89"],
        ["1", "7"],
        ["1", "56"]
    ]
}]

在我的 php 页面中,这就是我传递多维数组的方式。

$json=array();
array_push($json,array("type"=>$carType,"maker"=>$carMaker,"rate"=>$selectRate));
echo json_encode($json);

我的错误是什么?我没有从该页面传递 JSON 对象吗?如何在 success 函数中通过 jquery 访问每个数组中的每个元素?

ajax 的完整代码

$("#submit").on("click",function()
    {

          $("#set_setting").submit(function(){            

            data = $(this).serialize()
            $.ajax({
              type: "POST",
              dataType: "html",
              url: "submit_setting.php", //Relative or absolute path to response.php file
              data: data,
               success: function(data) {
                   //alert(JSON.stringify(data));
                   //data=JSON.stringify(data);
                   console.log(data);
                     //hide the form
                     $("#set_setting").slideUp("slow");

                     //show the result


                      $.each( data.type, function( index, value ){
                           console.log(value);
                      });
                 }

            });
            return false;

          });

        });
jquery arrays json ajax
3个回答
0
投票

您正在以纯文本形式发送数组。需要将其序列化为 JSON。我不知道 php 的语法,你需要查一下。您可以通过从 Postman 或 Fiddler 进行调用来测试这一点,您将看到响应类型。


0
投票

您已经将数组序列化为 json ,因此您无法以 html 数据类型访问该数组。您需要以 html 形式返回数据,以便在 js 中以 html 格式访问它。

最佳实践是使用 print_r 而不是 echo 来打印数组。 echo 无法打印 php 中的数组元素。

 <?php print_r($json) ?>

然后使用 foreach 循环来循环元素。


0
投票

我认为您需要添加如下所示的密钥!

$json['data']=array(); 
$json['data'] = array("type"=>$carType,"maker"=>$carMaker,"rate"=>$selectRate); 
echo json_encode($json);

请参考this链接访问json对象并在浏览器控制台中查看结果

© www.soinside.com 2019 - 2024. All rights reserved.