2010-04-08 4 views
0

Мне нужно передать объект JSON из функции $ .post() jQuery на страницу PHP.
Я попробовал этот плагин Jquery-JSON, но не работают:
JSON от jQuery до PHP

//include jquery.js and jquery.json.js 

$(document).ready(function(){ 
    var data = new Object(); 
    data.hello = "Hello"; 
    data.world = "World"; 
    var datajson = $.toJSON(data); 
    $.post('file.php', {data: datajson}, function(res){ 
    alert(res); 
    }); 
}); 

И file.php имеет простую строку:

<? 
var_dump(json_decode($_REQUEST['data'], true)); 
?> 

В чем проблема?

+1

В чем проблема? Что не работает? Любые сообщения об ошибках? –

+0

Какую версию php вы установили? – Shuriken

ответ

2

Несколько вещей:

вы не объявляете переменную datajson, она должна быть

 

$.post('file.php', {data: dataString}, function(res){ 
    alert(res); 
}); 
 

вместо этого?

Похоже, что у вас также есть тип PHP: son_decode должен быть json_decode.

+0

Да, я неправильно писал ... но не работает. – enfix

0

Я думаю, что эта функция опечатка son_decode

Она должна быть json_decode ссылка here

+0

Да, я неправильно писал ... но не работает. – enfix

0

параметры Firebug в порядке, но предупреждение возврата NULL.
Проблема с PHP?

0

Проверьте с phpinfo(), что PHP-JSON является фактически доступной. В некоторых установках это не так.

0

PHP может добавлять косые черты из-за настройки Magic Quotes. Легко исправить это, чтобы обернуть stripslashes() вокруг него так:

$data = stripslashes(json_decode($_REQUEST['data'], true)); 

более глубокий ответ here. Также вы должны, вероятно, использовать $_POST вместо $_REQUEST по соображениям безопасности.

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