Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > JQuery. Ф-я load(). Отправка массива или объекта.


Автор: numerovan 3.9.2012, 04:59
Здравствуйте, сетуация следующая:

в jquery есть функция load(), с помощью неё хочу отправить массив или объект, либо то и то. Не получаеться такое сделать.

Код

// вот примерно как хочу сделать

var my_array = new Array();
....// тут допустим забили этот массив данными

$("сюда подгружаеться ответный скрипт").load("страница на каторую отсылаю данные", {
send_my_array: my_array
})


посоветуйте в данной ситуации на что делать упор, на изучение JSON или искать какие-то лазейки на $.ajax() или .load() ?

Автор: Aliance 3.9.2012, 09:09
http://api.jquery.com/load/
Цитата

Example: pass arrays of data to the server.
$("#objectID").load("test.php", { 'choices[]': ["Jon", "Susan"] } );


Все правильно делаете. В firebug или хром-консоль можете увидеть какие заголовки уходят.
Видимо не правильно обрабатываете на сервере?

Автор: numerovan 3.9.2012, 14:49
да, спасибо, отсылаеться  и работает ... но что-то не могу понять как подобное отослать
Код

var my_array = new Array();

my_array[0]["name"] = "vova";
my_array[0]["fam"] = "petrov";
my_array[0]["age"] = 18;

my_array[1]["name"] = "pasha";
my_array[1]["fam"] = "sidorov";
my_array[1]["age"] = 20;

// ... таких массивов может быть любое количетсов ... так то не известно сколько будет my_array 0 или 20

// и как это прикрутить в следующую строку ?

$("#objectID").load("test.php", { 'choices[]': ["Jon", "Susan"] } );

// а получиться ли таким образом объект отослать ? как понимаю объекты не получиться отослать и придёться углубляться в JSON

Автор: Aliance 3.9.2012, 15:24
Код

var my_array = new Array();
$("#objectID").load("test.php", { request_param: my_array } );

Код

$request_param = $_POST['request_param'];
print_r( $request_param[0] );

Автор: numerovan 3.9.2012, 15:38
что-то не работает ... а конкретно test.php не видит приходящий массив $_POST['request_param']

Автор: Aliance 3.9.2012, 15:46
Что показывается в firebug или хром-консоле?

Автор: numerovan 3.9.2012, 22:06
признаюсь ранее не когда не пользовался такими программами firebug и хром-консоль ... походу придёться сейчас повозиться с ними.

Автор: numerovan 3.9.2012, 22:28
так, разобрался ... вы дали последнее решение этой задачи, чтоб отправить двумерный массив обычным способом, FIrebug в данном случае в POST ни чего не показывается, т.е. ни чего и не посылает ... нужно капать в другую наверно сторону.

Автор: numerovan 4.9.2012, 01:33
разобрался ... теперь ловлю массив двумерный на php странице ...
проблема была в том что нужно было правильно оформить массив, правильно создать и правильно поставить в них значения, потом последним вышеизложенным способом воспользоваться.
Код

var my_array = new Array();
$("#objectID").load("test.php", { request_param: my_array } );

попробывал так же ещё с помощью JSON, показалось что им удобней польоваться + ещё можно объект туда загнать, но это потредовалось ещё одну библеотеку добавить jquery.json-2.3.min.js ... она хоть и весит 2 кб ... но всё равно что-то нет желания её приплюсовывать, без лишних примочек ... Если потребуеться загнать картинку через аякс, то без JSON думаю будет не просто.

Автор: numerovan 4.9.2012, 03:47
хорошая эта штука Firebug smile  , помогает лучше разобраться в яваскрипте и в др. вещах. Раньше чтоб выявить ошибки яваскрипта приходилось тестить через IE и интуиктивно понимать что по чём ... а Firebug наглядно всё показывает ). Советую тем кто не пользуеться этим.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)