2013-09-21 4 views
0

PHP 5.4 FastCGI JQuery 1,10Почему NULL в json после JSON.stringify?

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 

я не знаю, почему это нулевой pper и как его удалить. Потому что, если я пытаюсь использовать:

$i = info['test']; 
echo $i; 

я буду выслан: testenull

+0

Не нужно 'stringify', вы уже устанавливаете' dataType: 'json'' – elclanrs

+0

dataType:' json 'предназначен для того, что вы ожидаете получить от сервера. Проблема заключается не в ответе на jquery, проблема в нулевом значении внутри json. –

+0

Попробуйте просто 'data: {test: 'teste}', тогда доступ в PHP, как '$ test = $ _POST [' test ']'. jQuery будет сериализовать ваши данные. – elclanrs

ответ

2

Похож ваш JSON данных являются проблемой.

json_decode() в РНР принимает закодированный строку JSON в качестве входных данных и преобразует его в переменной PHP.

Он работает как этот

<?php 
$json = '{"test": 12345}'; 
$obj = json_decode($json); 
print $obj->{'test'}; // 12345 
?> 
0

Поскольку вы установили тип данных JSON, так в ответ PHP должен быть в формате JSON тоже.

Пример: echo '{"i":'. $ I. '}';

Смежные вопросы