Jquery 如何使用Ajax显示以JSON格式从服务器获取的多条记录?

Jquery 如何使用Ajax显示以JSON格式从服务器获取的多条记录?,jquery,json,ajax,Jquery,Json,Ajax,尝试发送到返回JSON响应的PHP文件,然后使用 它可以显示结果,但只有一条记录显示为未定义 价值观 下面是来自core/backend/comm.php的JSON响应: { "name": "Rehan", "location": "Pune", "description": "hello hi", "created_by": 13692, "username": "xyz", }, { "name": "Sameer", "locati

尝试发送到返回JSON响应的PHP文件,然后使用 它可以显示结果,但只有一条记录显示为未定义 价值观

下面是来自
core/backend/comm.php
的JSON响应:

{
    "name": "Rehan",
    "location": "Pune",
    "description": "hello hi",
    "created_by": 13692,
    "username": "xyz",
},
{
    "name": "Sameer",
    "location": "Bangalore",
    "description": "how are you",
    "created_by": 13543,
    "username": "abc",
},
<!--JSON RESPONSE ENDS-->

这种不可预测行为的原因是您在ajax调用中使用了错误的数据类型。当您需要的显然是数据类型:“json”时,您使用的是数据类型:“text”,或者您甚至可以使用ommit数据类型,因为默认情况下jquery对数据类型xml、json、script或html使用智能猜测。 文件

jQuery尝试根据响应的MIME类型猜测数据类型。这意味着,如果在ajax调用中输入数据类型,PHP代码应该在响应中使用正确的“Content-type”头(application/json)。如果您不确定情况是否如此,请使用数据类型:“json”


最后,可以始终使用JSON.parse(数据);如果JSON数组以字符串格式返回,则对其进行反序列化。

这种不可预测行为的原因是您在ajax调用中使用了错误的数据类型。当您需要的显然是数据类型:“json”时,您使用的是数据类型:“text”,或者您甚至可以使用ommit数据类型,因为默认情况下jquery对数据类型xml、json、script或html使用智能猜测。 文件

jQuery尝试根据响应的MIME类型猜测数据类型。这意味着,如果在ajax调用中输入数据类型,PHP代码应该在响应中使用正确的“Content-type”头(application/json)。如果您不确定情况是否如此,请使用数据类型:“json”


最后,可以始终使用JSON.parse(数据);如果JSON数组以字符串格式返回,则对其进行反序列化。

尝试删除数据类型:“text”,但仍不起作用。是否尝试在控制台中输出返回的数据?使用console.log(数据);在success函数中,查看作为响应您真正得到了什么。数据的控制台响应将发送comm.php发送的确切信息,即:{“name”:“Rehan”,“location”:“Pune”,“description”:“hello hi”,“created_by”:13692,“username”:“xyz”,},{“name”:“Sameer”,“location”:“班加罗尔”,“描述”:“你好”,“创建人”:13543,“用户名”:“abc”},未定义的响应生成一次,应该是两次。代码在返回单个结果时终止。此外,值仍然未定义。这不是有效的JSON。1.您应该有左括号和右括号,因为您希望获得JSON对象数组。2.在“username”:“xyz”之后有逗号“在第一个JSON对象中,但不应该是3。在第二个JSON对象中,在“username”:“abc”之后有一个逗号,但不应为4。在最后一个}后面有一个逗号,这里应该只有结束括号这是我现在的回答:[{“姓名”:“Rehan”,“地点”:“Pune”,“描述”:“你好”,“创建人”:13692,“用户名”:“xyz”},{“姓名”:“Sameer”,“地点”:“班加罗尔”,“描述”:“你好”,“created_by”:13543,“username”:“abc”}],但响应仍然相同。一个结果具有未定义的值。尝试删除数据类型:“text”,但仍然不起作用。是否尝试在控制台中输出返回的数据?使用console.log(数据);在success函数中,查看作为响应您真正得到了什么。数据的控制台响应将发送comm.php发送的确切信息,即:{“name”:“Rehan”,“location”:“Pune”,“description”:“hello hi”,“created_by”:13692,“username”:“xyz”,},{“name”:“Sameer”,“location”:“班加罗尔”,“描述”:“你好”,“创建人”:13543,“用户名”:“abc”},未定义的响应生成一次,应该是两次。代码在返回单个结果时终止。此外,值仍然未定义。这不是有效的JSON。1.您应该有左括号和右括号,因为您希望获得JSON对象数组。2.在“username”:“xyz”之后有逗号“在第一个JSON对象中,但不应该是3。在第二个JSON对象中,在“username”:“abc”之后有一个逗号,但不应为4。在最后一个}后面有一个逗号,这里应该只有结束括号这是我现在的回答:[{“姓名”:“Rehan”,“地点”:“Pune”,“描述”:“你好”,“创建人”:13692,“用户名”:“xyz”},{“姓名”:“Sameer”,“地点”:“班加罗尔”,“描述”:“你好”,“created_by”:13543,“username”:“abc”}],但响应仍然相同。一个结果具有未定义的值。
$('[id^="cat"]').click(function() {
   // do something
  var prot= this.getAttribute("prot");


       jQuery.ajax({
    url: "core/backend/comm.php",
    data:{ prot: prot }, 
    // $("#query_form").serialize(),
    type: "POST",
    success:function(data){

    // $("#repo").html(data);

data = [data];
var htmlText = '';

            for ( var key in data ) {
                htmlText += '<div class="div-conatiner">';
                htmlText += '<p class="p-name"> Name: ' + data[key].name + '</p>';
                htmlText += '<p class="p-loc"> Location: ' + data[key].location + '</p>';
                htmlText += '<p class="p-desc"> Description: ' + data[key].description + '</p>';
                htmlText += '<p class="p-created"> Created by: ' + data[key].created_by + '</p>';
                htmlText += '<p class="p-uname"> Username: ' + data[key].username + '</p>';
                htmlText += '</div>';
            }

            $('#repo').append(htmlText);


    },

    error:function (){}
    });

});
$('[id^="cat_"]').click(function() {
   // do something
  var prot= this.getAttribute("prot");


    jQuery.ajax({
    url: "core/backend/comm.php",
    // dataType: "text",
    data:{ prot: prot }, 
    // $("#query_form").serialize(),
    type: "POST",
    success:function(data){

    // $("#repo").html(data);
console.log(data);
var data = JSON.parse(data);
var htmlText = '';

            for ( var key in data ) {
                    htmlText += '<div class="div-conatiner">';
                    htmlText += '<p class="p-name"> Name: ' + data[key].name + '</p>';
                    htmlText += '<p class="p-loc"> Location: ' + data[key].location + '</p>';
                    htmlText += '<p class="p-desc"> Description: ' + data[key].description + '</p>';
                    htmlText += '<p class="p-created"> Created by: ' + data[key].created_by + '</p>';
                    htmlText += '<p class="p-uname"> Username: ' + data[key].username + '</p>';
                    htmlText += '</div>';
                }

                $('#repo').append(htmlText);


    },

    error:function (){}
    });




});
[ {
        "name": "Rehan",
        "location": "Pune",
        "description": "hello hi",
        "created_by": 13692,
        "username": "xyz"
    },
    {
        "name": "Sameer",
        "location": "Bangalore",
        "description": "how are you",
        "created_by": 13543,
        "username": "abc"
    }]