Jquery 如何使用Ajax显示以JSON格式从服务器获取的多条记录?
尝试发送到返回JSON响应的PHP文件,然后使用 它可以显示结果,但只有一条记录显示为未定义 价值观 下面是来自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
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"
}]