Javascript 从AJAX请求中删除JSON数据
我有一个PHP函数,可以回显JSON数据和分页链接。数据与此一模一样Javascript 从AJAX请求中删除JSON数据,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我有一个PHP函数,可以回显JSON数据和分页链接。数据与此一模一样 [{"name":"John Doe","favourite":"cupcakes"},{"name":"Jane Citizen","favourite":"Baked beans"}] Previous Next 为了获得这些数据,我将使用jQuery.ajax函数。我的代码如下:- function loadData(page){ $.ajax ({ ty
[{"name":"John Doe","favourite":"cupcakes"},{"name":"Jane Citizen","favourite":"Baked beans"}]
Previous
Next
为了获得这些数据,我将使用jQuery.ajax函数。我的代码如下:-
function loadData(page){
$.ajax
({
type: "POST",
url: "http://sandbox.dev/favourite/test",
data: "page="+page,
success: function(msg)
{
$("#area").ajaxComplete(function(event, request, settings)
{
$("#area").html(msg);
});
}
});
}
使用jQuery,我是否可以刮取从AJAX请求返回的数据并使用JSON数据?还是有更好的方法?我只是在试验,希望对JSON数据进行分页。您可以尝试以下方法:-
var jsObject = JSON.parse(your_data);
data = JSON.parse(gvalues);
var result = data.key;
var result1 = data.values[0];
您可以尝试以下方法:-
var jsObject = JSON.parse(your_data);
data = JSON.parse(gvalues);
var result = data.key;
var result1 = data.values[0];
将数据类型放入ajax请求以接收json对象,否则将接收字符串
如果您在json中添加了上一个和下一个..,那么这将是无效的
function loadData(page){
$.ajax({
type: "POST",
url: "http://sandbox.dev/favourite/test",
data: {'page':page},
dataType:'json',
success: function(msg){
if(typeof (msg) == 'object'){
// do something...
}else{
alert('invalid json');
}
},
complete:function(){
//do something
}
});
}
和。。在php文件中,放置一个标题
header("Content-type:application/json");
// print your json..
要查看json对象。。。使用console.log,如下所示:
// your ajax....
success:(msg){
if( window.console ) console.dir( typeof(msg), msg);
}
将json更改为如下内容:使用jsonlint对其进行验证-
将数据类型放入ajax请求以接收json对象,否则将接收字符串
如果您在json中添加了上一个和下一个..,那么这将是无效的
function loadData(page){
$.ajax({
type: "POST",
url: "http://sandbox.dev/favourite/test",
data: {'page':page},
dataType:'json',
success: function(msg){
if(typeof (msg) == 'object'){
// do something...
}else{
alert('invalid json');
}
},
complete:function(){
//do something
}
});
}
和。。在php文件中,放置一个标题
header("Content-type:application/json");
// print your json..
要查看json对象。。。使用console.log,如下所示:
// your ajax....
success:(msg){
if( window.console ) console.dir( typeof(msg), msg);
}
将json更改为如下内容:使用jsonlint对其进行验证-
最好不要发明自己的格式,比如在JSON之后添加HTML链接。JSON已经能够容纳您需要的任何结构。例如,您可以使用以下表格:
{
"data": [
{"name": "John Doe", "favourite": "cupcakes"},
{"name": "Jane Citizen", "favourite": "Baked beans"}
],
"pagination": {
"prev": "previous page URL",
"next": "next page URL"
}
}
在客户端,可以非常轻松地解析它:
$.ajax({
url: "URL",
dataType:'json',
success: function(resp) {
// use resp.data and resp.pagination here
}
});
最好不要发明自己的格式,比如在JSON之后添加HTML链接。JSON已经能够容纳您需要的任何结构。例如,您可以使用以下表格:
{
"data": [
{"name": "John Doe", "favourite": "cupcakes"},
{"name": "Jane Citizen", "favourite": "Baked beans"}
],
"pagination": {
"prev": "previous page URL",
"next": "next page URL"
}
}
在客户端,可以非常轻松地解析它:
$.ajax({
url: "URL",
dataType:'json',
success: function(resp) {
// use resp.data and resp.pagination here
}
});
我建议您返回纯JSON数据,而不是删除JSON数据。根据您的用例,我认为没有必要编写上一个和下一个。我猜返回url中的第一个对象是Previous,下一个对象是next。只需返回下面的字符串
[{"name":"John Doe","favourite":"cupcakes"},{"name":"Jane Citizen","favourite":"Baked beans"}]
并在下面读它
function loadData(page){
$.ajax
({
type: "POST",
url: "http://sandbox.dev/favourite/test",
dataType:'json',
success: function(msg)
{
var previous = msg[0]; //This will give u your previous object and
var next = msg[1]; //this will give you your next object
//You can use prev and next here.
//$("#area").ajaxComplete(function(event, request, settings)
//{
// $("#area").html(msg);
//});
}
});
}
这种方法只返回那些不会改变整个html的数据。我建议您返回纯JSON数据,而不是删除JSON数据。根据您的用例,我认为没有必要编写上一个和下一个。我猜返回url中的第一个对象是上一个对象,下一个对象是下一个对象。只需返回下面的字符串
[{"name":"John Doe","favourite":"cupcakes"},{"name":"Jane Citizen","favourite":"Baked beans"}]
并在下面读它
function loadData(page){
$.ajax
({
type: "POST",
url: "http://sandbox.dev/favourite/test",
dataType:'json',
success: function(msg)
{
var previous = msg[0]; //This will give u your previous object and
var next = msg[1]; //this will give you your next object
//You can use prev and next here.
//$("#area").ajaxComplete(function(event, request, settings)
//{
// $("#area").html(msg);
//});
}
});
}
这样只返回将要更改的数据,而不是整个html。为什么在成功处理程序中使用ajaxComplete?删除它,并直接填充区域。您不需要ajaxComplete函数-因为您已经在成功回调函数中,您可以只放置普通的$area.htmlmsg;在那里,您可以使用.split或.substr和.indexOf或regex方法来获取第一个回车符之前的所有内容,然后将其解析为JSON,但是为什么PHP返回所示格式?为什么在成功处理程序中使用ajaxComplete?删除它,并直接填充区域。您不需要ajaxComplete函数-因为您已经在成功回调函数中,您可以只放置普通的$area.htmlmsg;在那里,您可以使用.split或.substr和.indexOf或regex方法来获取第一个回车符之前的所有内容,然后将其解析为JSON,但是为什么您的PHP返回所示的格式呢?yeap@Christoph!这就是为什么我在json中添加了“上一个”和“下一个”,这将是无效的。。当返回时,您可以检查json。。。iftypeof msg=='object'{}else{alert'invalid json';}.yeap@Christoph!这就是为什么我在json中添加了“上一个”和“下一个”,这将是无效的。。当返回时,您可以检查json。。。iftypeof msg=='object'{}else{alert'invalid json';}。这更干净了!我重写了PHP,将分页值作为JSON响应的一部分。我希望我可以投票,但我没有足够的代表。谢谢你的指针。别忘了在有空的时候拿着投票回来;这更干净!我重写了PHP,将分页值作为JSON响应的一部分。我希望我可以投票,但我没有足够的代表。谢谢你的指针。别忘了在有空的时候拿着投票回来;