[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как проще передать множество параметров формы PHP
Allality
Делаю новый каталог для сайта магазина, возникла необходимость передавать сразу кучу параметров PHP скрипту, который грузится через Ajax.

Использую следующий код для передачи одной переменной (скрипт вызова Ajax):


xmlhttp.open("GET","/katalog2.php?tekid=" + tekId,true);
xmlhttp.send();


Сейчас же данных действительно много, в форме несколько select multiple списков, т.е. в каждом списке пользователь может выбрать от нескольких до десятков параметров.

Подскажите, есть ли готовое решение для подобной задачи, ведь наверняка уже много чего написано? Или может есть метод, позволяющий тупо кучей в $_GET пихать все данные формы и уже потом в PHP разбирать их? Т.е. без подобного:


/katalog2.php?tekid=1&nextid=22&name=Aaa&cname=AAba&g=245...




Спустя 21 минута, 22 секунды (27.07.2012 - 08:31) forza написал(а):
Ну, например, на jQuery это делается очень легко.
var str = $("#form").serialize();
alert(str);

Все, строка передачи данных сгенерирована.

Спустя 1 час, 8 минут, 18 секунд (27.07.2012 - 09:39) forza написал(а):
А если на яваскрипте, то надо пробежать по всем елементам формы и с генерировать строку самому.

var str = '';
for(i=0; i < document.FormName.elements.length; i++)
{
str += document.FormName.elements[i].name + '=' + encodeURIComponent(document.FormName.elements[i].value) + '&';
}
str = str.substring(0, str.length-1);
alert(str);

Спустя 1 день, 25 минут, 13 секунд (28.07.2012 - 10:04) Allality написал(а):
Да, намного лучше на яваскрипте.

Решение выглядит идеальным, спасибо. Но вот пробую, вылазит ошибка Uncaught TypeError: Cannot read property 'elements' of undefined.

Код:


var str = '';
for(i=0; i < document.parametry.elements.length; i++)
{
str += document.parametry.elements[i].name + '=' + encodeURIComponent(document.parametry.elements[i].value) + '&';
}
str = str.substring(0, str.length-1);
alert(str);


Все элементы находятся в форме parametry:

<form name="parametry">



Я что-то не так делаю?

И еще вопрос, может глупый, но все же. Что если форму через Ajax потом загрузить, код будет работать или ему только статику можно отдавать?

Спустя 8 часов, 29 минут, 54 секунды (28.07.2012 - 18:34) Allality написал(а):
Не могу решить проблему, может кто-нибудь направит? Ввожу в JS консоли хрома document.parametry.elements.length, получаю число 7. При загрузке же страницы выдает ошибку...

Спустя 17 часов, 38 минут, 58 секунд (29.07.2012 - 12:13) Гость_666 написал(а):
Allality, Есть библиотека jQuery, там есть функция "$.ajax()" двигайся в этом направлении. Она автоматически все делает, остается только подставить нужные значения. Нет смысла ездить на лошадях, когда существуют автомобиль.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.