php 5.4 fastcgi jquery 1.10
Код JQuery:
$.ajax({
type: "POST",
url: "",
dataType: "json",
data: { json: JSON.stringify({test: 'teste'}) }
}).done(function(msg) {
var msg = $.parseJSON(msg);
alert(msg);
});
PHP-код:
$json = $_POST['json'];
$info = json_decode($json, true);
var_dump($info);
Результат:
array(1) {
["test"]=>
string(5) "teste"
}
null
Я не знаю, почему этот нулевой оператор и как его удалить. Потому что, если я пытаюсь использовать:
$i = info['test'];
echo $i;
я получу: testenull
Похоже, что ваши данные JSON - это проблема.
json_decode()
в PHP использует кодированную строку JSON в качестве входных данных и преобразует ее в переменную PHP.
Он работает так
<?php
$json = '{"test": 12345}';
$obj = json_decode($json);
print $obj->{'test'}; // 12345
?>
Поскольку вы устанавливаете dataType, это JSON, поэтому в PHP ответ также должен быть в формате JSON.
Пример: echo '{"i":'. $ I. '}';