Ajax使用PHP发送JSON并获取数据

时间:2012-06-08 14:11:27

标签: php jquery ajax

我有jquery代码输出json数据,我需要将此数据发送到url并使用php获取

代码:

JSON.stringify(showtimes)

输出:

[{"show_id":"1","movie_id":"20","cinema_id":"10","status":"0","times":"00:00"},{"show_id":"2","movie_id":"21","cinema_id":"11","status":"1","times":"01:00"}, ... etc]

我需要通过ajax将这个json数据JSON.stringify(showtimes)发送到url并使用php获取json。

我的ajax代码:

$.ajax({
    type: 'POST',
    url: '/admin/save/',
    data: JSON.stringify(showtimes),  
    success: function(data){}
});

问题:

  • 检查ajax代码是否属实?
  • 如何使用PHP获取数据?

3 个答案:

答案 0 :(得分:3)

首先,您应该在javascript中为您的json对象分配一个数据键:

$.ajax({
    type: 'POST',
    url: '/admin/save/',
    data: {json : JSON.stringify(showtimes)},  
    success: function(data){}
});

在PHP中,我们将以下列方式访问JSON字符串:

$_POST['json'];

其次,在PHP中,您需要使用以下示例收集数据:

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

然后,您可以将JSON数组作为关联数组访问:

foreach($json as $show_details){
    $show_id = $show_details['show_id'];
    ...
}

答案 1 :(得分:1)

您可以使用以下内容检查ajax响应是否有效JSON:

function isValidJSON($request_data)
{
  return (json_decode($request_data) != NULL) ? TRUE : FALSE;
}

然后,您可以使用json_decode()对数据进行解码。

答案 2 :(得分:0)

要将json解码为php数组,请使用json_decode

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {

  //It is ajax

}