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


Ajax send JSON and fetch data using PHP

我有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.stringify(showtimes)发送此 json 数据到 url 并使用 php 获取 json。

我的 ajax 代码:

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

问题:

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

首先,你应该在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'];
    ...
}

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

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

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

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

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
  //It is ajax
}