Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   jquery, ajax передача данных в формате JSON (https://javascript.ru/forum/misc/10261-jquery-ajax-peredacha-dannykh-v-formate-json.html)

hangover 24.06.2010 20:26

jquery, ajax передача данных в формате JSON
 
Здрасвуйте.
$.getJSON('php/module/feedback.php', {
           'data':sData
       }, feedbackStatus);


sData - JSON объект.

в пхп файл передаеться перменная data, только ее значение [Objecy objet], вместо JSON формата.

как правильно сделать запрос, чтобы в пхп можно было использовать json_decode?



П.С.
соль еше в том что если предаю просто стринговую переменную
$.getJSON('php/module/feedback.php', {
           'data':'{"first":"one"}'
       }, feedbackStatus);

то пхп файл получает ее, но декодить json не поулчаеться.
то етсь
$t = json_decode($data)
echo $t->{'first'}; // ничего не выведет


а если же
$t = json_decode('{"first":"one"}')
echo $t->{'first'}; // все нормально





суть вопроса:
как из яваскрипта передать файлы пхп обработчку в формате JSON чтобы можешть было использовать пхп функцию json_decode?

Octane 25.06.2010 01:16

$.getJSON('php/module/feedback.php', {
    data: {
       param: sData
    }
}, feedbackStatus);

<?php
json_decode($_REQUEST['param'])
?>
Посмотрите предварительно, валидна ли JSON-строка на сервере, а то может какие-нибудь magic quotes портят её.


А зачем на сервер в формате JSON данные передавать?

hangover 25.06.2010 01:20

Цитата:

Сообщение от Octane
А зачем на сервер в формате JSON данные передавать?

с инпутов собираються данные. и передаеться имя инпута - значение.

а насчет json_decode
JSON был валидный проблема была в том что все кавчки эскейпились.
когда сделал элементраное
$d= str_replace('\\','',$_REQUEST['data']);

все заработало

Octane 25.06.2010 02:01

Цитата:

Сообщение от hangover
с инпутов собираються данные. и передаеться имя инпута - значение.

А обычная URI строка "name1=value1&name2=value2" уже не модно?

hangover 25.06.2010 02:04

а как тогда передать такую строку если имена инпутов изначально не известны.
хотя проще было бы и так.
просто URI строку собрать.. и передать)

я просто зациклился на $.getJSN() и долбил в одну точку)

Octane 25.06.2010 02:08

http://api.jquery.com/serialize/

_AXE_ 02.07.2010 22:14

Octane, не модно:) Уже усторевает такой подход.
Поэтому:
$.getJSON('php/module/feedback.php', {
	    data: {
	       param: JSON.stringify(sData)
	    }
	}, feedbackStatus);

$param = json_decode($_POST['param']);

hangover 02.07.2010 22:21

_AXE_,
но для етого вроде нужно доп. плагин подключать.

проблема была в том что все кавычки " эскейпились при передаче.
только полсе str_replace('\\','',$var) работат json_decode.

Octane 02.07.2010 23:58

Цитата:

Сообщение от _AXE_
Уже усторевает такой подход.

С чего вы это взяли? Покажите, где написано, что лучше передавать данные на сервер в JSON-строке?

Kolyaj 04.07.2010 11:09

Цитата:

Сообщение от _AXE_
Уже усторевает такой подход.

Чушь не гони.


Часовой пояс GMT +3, время: 09:50.