PHP-在PHP中检索ajax发布的json对象

PHP-在PHP中检索ajax发布的json对象,php,jquery,ajax,json,Php,Jquery,Ajax,Json,我使用此函数将json发送到php页面: function update_records(data) { data = data; $.ajax({ type: 'POST', cache: false, timeout: 2000, contentType: 'application/json', url: 'update.php', data: data, //'data='+da

我使用此函数将json发送到php页面:

function update_records(data) {
    data = data;
    $.ajax({
        type: 'POST',
        cache: false,
        timeout: 2000,
        contentType: 'application/json',
        url: 'update.php',
        data: data, //'data='+data+'&aid=0',
        success: function() {
            success_message('success');
        },
        error: function(){
            failure_message('failure');
        }
    }); 
在firebug中,我可以看到发布的数据:

[{
    "postid": 66,
    "values": [
        "field_key=a",
        "oldvalue=b",
        "newvalue=c dad"
    ]
}]

在我的php页面上,我如何$\u请求对象?还是我做错了?

在PHP端,使用$\u POST['postid']获取'66',等等。如果在AJAX查询中使用类型:'get',应该在PHP端使用$\u get['postid']。

在PHP端,使用$\u POST['postid']获取'66',等等。如果在AJAX查询中使用类型:'get',应该使用$\u get['postid']在PHP端。

您可以使用该函数将JSON字符串解码为数组。

您可以使用该函数将JSON字符串解码为数组。

JQuery有一个整洁的函数,允许我们读取外部和本地JSON文件。 url,[数据],[回调]


此函数的第一个参数是必需的,即您计划读取的URL。如果需要将数据发布到URL,则使用第二个参数。最后但并非最不重要的一点是,回调函数虽然不是必需的,但几乎总是必需的。

JQuery有一个整洁的函数,允许我们读取外部和本地JSON文件。 url,[数据],[回调]


此函数的第一个参数是必需的,即您计划读取的URL。如果需要将数据发布到URL,则使用第二个参数。最后但同样重要的是,回调函数虽然不是必需的,但几乎总是必需的。

首先,您应该以application/json而不是application/x-www-form-urlencoded的形式传递数据

...,
data: JSON.stringify(data),
...,
在服务器端,使用将JSON编码的字符串解码为对象。这个函数非常严格,依赖于正确编写的JSON

它使用您提供的JSON进行了尝试,效果非常好。 例子:

如果只传递一个对象,我建议去掉周围的方括号。我还将确保以JSON格式而不是字符串传递值。这将产生以下JSON:

{
   "postid":66,
   "values":{
      "field_key":"a",
      "oldvalue":"b",
      "newvalue":"c dad"
   }
}

首先,您应该以application/json而不是application/x-www-form-urlencoded的形式传递数据

...,
data: JSON.stringify(data),
...,
在服务器端,使用将JSON编码的字符串解码为对象。这个函数非常严格,依赖于正确编写的JSON

它使用您提供的JSON进行了尝试,效果非常好。 例子:

如果只传递一个对象,我建议去掉周围的方括号。我还将确保以JSON格式而不是字符串传递值。这将产生以下JSON:

{
   "postid":66,
   "values":{
      "field_key":"a",
      "oldvalue":"b",
      "newvalue":"c dad"
   }
}

我确实在我的js上用这段代码解决了这个问题

这就是我收集数据的方式 我已经创建了对象

jsonObj={"postid":postid,"value":value};
var jsonString=JSON.stringify(jsonObj);
现在,我使用ajax发送对象

$.ajax({
  type: 'POST',
  url: siteurl+'/wp-content/themes/crm/modules/update_lead.php',
  dataType : 'json',
  data: {action:actionType,data:data},
});
在目标PHP文件/wp content/themes/crm/modules/update_lead.PHP上显示

$json=json_decode(stripslashes($_POST['data']), true);

希望这有帮助…

我确实在我的js上用这段代码解决了这个问题

这就是我收集数据的方式 我已经创建了对象

jsonObj={"postid":postid,"value":value};
var jsonString=JSON.stringify(jsonObj);
现在,我使用ajax发送对象

$.ajax({
  type: 'POST',
  url: siteurl+'/wp-content/themes/crm/modules/update_lead.php',
  dataType : 'json',
  data: {action:actionType,data:data},
});
在目标PHP文件/wp content/themes/crm/modules/update_lead.PHP上显示

$json=json_decode(stripslashes($_POST['data']), true);

希望这有帮助…

我的示例中的json对象只有一行,将来我会有多个id。我曾尝试使用$_REQUEST['data'],但结果为空。这是因为在PHP中无法获取javascript变量数据。你只能得到你发送给它的数据。使用var\u dump$\u POST;看看你在PHP端到底收到了什么。另外,不要使用$\u请求:var\u dump$\u POST;返回array0{}为什么不使用$\u请求?如果var\u dump返回array0,那么问题不在PHP中。从你的表演来看,我不知道它在哪里。请参阅为什么不在我在其他注释中提供的链接中使用$_请求:我的示例中的json对象只有一行,将来我将有多个id。我曾尝试使用$_REQUEST['data'],但结果为空。这是因为在PHP中无法获取javascript变量数据。你只能得到你发送给它的数据。使用var\u dump$\u POST;看看你在PHP端到底收到了什么。另外,不要使用$\u请求:var\u dump$\u POST;返回array0{}为什么不使用$\u请求?如果var\u dump返回array0,那么问题不在PHP中。从你的表演来看,我不知道它在哪里。请参阅为什么不在我在其他评论中提供的链接中使用$_REQUEST:问题是我在尝试$_REQUEST['data']时得到null,所以json_解码当然不起作用。您的帖子中出现了一些错误。也可以使用$\u POST。然后尝试添加以下内容:contentType:application/json;charset=utf-8。问题是我在尝试$_请求['data']时得到null,所以json_解码当然不起作用。您的帖子中出现了一些错误。也可以使用$\u POST。然后尝试添加以下内容:contentType:application/json;charset=utf-8。我想找出我的代码有什么问题:-但感谢您的选择我想找出我的代码有什么问题:-但感谢您的选择您的请求中有点奇怪:您将contentType设置为application
/json但将数据作为application/x-www-form-urlencodedSomething在您的请求中很奇怪:您将contentType设置为application/json,但将数据作为application/x-www-form-urlencoded发送