2015-02-19 2 views
0

Разработанный интерфейс отправляет массив данных, сформированный как объект JSON с вызовом Ajax. объект JSON выглядит следующим образом:Чтение данных json в PHP, отправленных с вызовом Ajax

{ 
"name": " Test Name ", 
"image_url": "test URL", 
"include": [ 
    "1" 
], 
"dimension": [ 
    null 
], 
"media_type": [ 
    null 
], 
"match": [ 
    "1" 
], 
"content": [ 
    "test content" 
], 
"sorting": { 
    "rating": "50", 
    "language": "50", 
    "CS Weight": "50", 
} 
} 

Как я могу читать в моем PHP контроллер. Могу ли я просто получить его только так:

$data = $_POST; 

Поскольку переменная, которая содержит объект JSON в данном случае не имеет никакого имени, я не могу получить его таким образом

$data = $_POST['data'] 

Edited Часть


от переднего конца, данные передаются следующим образом:

sendAjax: function(value, url, callback){ 
      xhr = $.ajax({ 
       type: 'POST', 
       url: url, 
       data: value 
      }).done(function(message){ 
       callback(message); 
      }).fail(function(jqXHR, textStatus){ 
       console.log('failed to submit form, error type: '+textStatus); 
      }); 
     } 
+0

Они отправляют его как сообщение или получают и имеют имя. – AbraCadaver

+0

Данные отправляются как 'POST', но это означает, t действительно имеет значение, я могу получить оба с '$ _REQUEST' например. – Amaynut

ответ

1

Прочти от ввода скрипта, который где вы можете получить «сырые» данные POST:

$json = file_get_contents('php://input'); 
$data = json_decode($json); 
+0

Что такое файл' php: // input', который я должен прочитать? – Amaynut

+1

http://php.net/manual/en/wr appers.php.php –

+0

Спасибо, это единственное решение, которое работает для меня. – Amaynut

0

Это должно работать при условии, что вы используете JQuery на вашем переднем конце. Просто вставьте в ваш консоль JavaScript и запустить его (убедитесь, что вы замените путь с вашим веб-адрес. Параметры должны проходить через правильно.

data = { 
"name": " Test Name ", 
"image_url": "test URL", 
"include": [ 
    "1" 
], 
"dimension": [ 
    null 
], 
"media_type": [ 
    null 
], 
"match": [ 
    "1" 
], 
"content": [ 
    "test content" 
], 
"sorting": { 
    "rating": "50", 
    "language": "50", 
    "CS Weight": "50", 
} 
} 

$.ajax({url:'/YOUR/PATH/HERE', data: {data: data}, type: 'post', dataType: 'json'}) 

Происходило мне после размещения, вы спрашиваете, как сделать вы разбираете JSON после получения или как его отображать в хеше $ _POST?

+0

Я знаю, как разбирать его, как только я храню его в некоторой переменной PHP, с функцией 'json_decode'. Я ищу, как получить его и сохранить в переменной PHP как строку JSON, которую я мог бы проанализировать. – Amaynut

+0

Затем вышеприведенное должно работать, проверьте $ _POST ['data']. Это должна быть ваша строка json – Camway