Использую следующий код для передачи одной переменной (скрипт вызова 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.
Код:
Все элементы находятся в форме parametry:
Я что-то не так делаю?
И еще вопрос, может глупый, но все же. Что если форму через Ajax потом загрузить, код будет работать или ему только статику можно отдавать?
Решение выглядит идеальным, спасибо. Но вот пробую, вылазит ошибка 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()" двигайся в этом направлении. Она автоматически все делает, остается только подставить нужные значения. Нет смысла ездить на лошадях, когда существуют автомобиль.