Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передача объекта по AJAX. Помогите разобраться (https://javascript.ru/forum/misc/15874-peredacha-obekta-po-ajax-pomogite-razobratsya.html)

Wolf11 17.03.2011 14:15

Передача объекта по AJAX. Помогите разобраться
 
Здравствуйте всем!

Если верить console.log, то из JS передаётся
Object {feilds[0][left]="33", feilds[0][top]="37", feilds[0][value]="Значение1", feilds[1][left]="139", feilds[1][top]="132", feilds[1][value]="Значение2"}


Но php скрипт принимает
array ( 0 => array ( 'value' => 'Значение1, 'top' => '37', 'left' => '33', ), 1 => array ( 'value' => 'Значение2', 'top' => '132', 'left' => '139', ), )


Объясните, пожалуйста, как такая трансформация получилась?

Заранее всем спасибо за помощь.

Matre 17.03.2011 14:30

Может, я не всё понял, но где тут трансформация? Оба кода по своей сути одинаковы.

Wolf11 17.03.2011 16:27

В JS объект формировался так:

var feilds=jQuery('.draggable');
        	var data;
        	data=new Object();
        	for (i=0; i<feilds.length; i++){
        		data['feilds['+i+'][value]']=jQuery(feilds[i]).text();
        		data['feilds['+i+'][top]']=jQuery(feilds[i]).css('top').replace("px","");
        		data['feilds['+i+'][left]']=jQuery(feilds[i]).css('left').replace("px","");
        		console.log(data);
        	};
        	console.log(data);


Ну я понимаю так: ключ feilds[0][left] => значение 33, ключ feilds[0][value] => значение Значение1 и т.д.

А в php ключ 0 => значение массив, в котором ключ value => значение Значение1 и т.д. Потом ключ 1 => значение массив...

Так ведь? Мне показалось, что структура несколько поменялась.

Добрый слоник 17.03.2011 16:52

Цитата:

то из JS передаётся
уточни куда передается?

Цитата:

Мне показалось, что структура несколько поменялась.
Поясни, пожалуйста, а что ты ожидаешь увидеть в php-скрипте.

:)

Wolf11 17.03.2011 17:13

Цитата:

Сообщение от Добрый слоник (Сообщение 97008)
уточни куда передается?


Поясни, пожалуйста, а что ты ожидаешь увидеть в php-скрипте.

:)

Как куда? В php скрипт.
Хотелось увидеть некий многомерный массив...

У меня на самом деле всё работает как надо. Но я хочу разобраться как это работает:)
По факту получается, что из 2-мерного массива при передаче получился многомерный?

Добрый слоник 17.03.2011 17:35

Цитата:

Хотелось увидеть некий многомерный массив...
дык, ты его и видишь
массив
array ( 0

элементы которого
0 =>

являются массивами
0 => array


Что тебе еще надо? :)

Wolf11 17.03.2011 17:48

Мне надо понять, как это получилсь:))))

Добрый слоник 18.03.2011 17:33

Тогда так:
Заходим, читаем, внимательно читаем - так браузер общается с сервером.

После этого у тебя должно остаться в голове на всегда следующее:

От браузера к серверу идет только текст.
От сервера к браузеру идет только текст.

Далее, из ссылки которую я указал выше, читаешь про методы GET и POST.
Этими методами ты пользуешься в своем волшебном "AJAX".
Обращаешь внимание на то, как передаются данные серверу.

После этого у тебя должно остаться в голове следующее:

У меня где-то есть JS функция, которая отправляет запрос на сервер. Эта функция преобразует мой объект "data" в текст.

Найди эту функцию и разложи ее по каждой строчке.

После этого должен остаться последний вопрос: "как в пхп получается массив, если сервер получил текст".

Открываешь любой учебник по пхп и читаешь про переменные $_GET и $_POST Например тут в частности тут

После этого, я думаю у тебя ни один объект JS не будет передаваться ни по AJAX, ни другими магическими способами :)

Wolf11 18.03.2011 18:50

Ога, у меня будут передаваться сплошные 0 и 1:)
Тем не менее всё стало понятнее. Спасибо за ответ.


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