Список форумов Шадринский форум -> Программирование -> Программирование для школьников и студентов. -> Заполнение формы новыми полями
Начать новую тему   Ответить на тему   вывод темы на печать

Заполнение формы новыми полями

Автор
Сообщение
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2004.12.08 02:44.46
Ответить с цитатой
Часто возникают ситуации, когда во время работы скрипта в браузере надо перед отправкой серверу заполнить форму новыми полями. Допустим, добавить служебную инфомацию о пользователе. Для решения такой задачи я пользуюсь следующим механизмом:

Файл test.html

<html>
<body>
<script>
function appendDataPrim(form,name,value) // добавляет строку или число в форму
 {
    var doc=form.ownerDocument;
    var e=doc.createElement('input');
    e.type="hidden";
    e.name=name;
    e.value=value;
    form.appendChild(e);
 }

function appendDataArray(form,name,value) // добавляет массив в форму
 {
   for (var k=0; k<value.length; k++) appendDataForm(name+'[]',value[k]);
 }

function appendDataObject(form,name,value) // добавляет объект в форму
 {
   for (var k in value) appendDataForm (form,name+'['+k+']',value[k]);
 }

function appendDataForm(form,name,value) // добавляет все что угодно в форму
{
    if (!(value instanceof Object))
     appendDataPrim(form,name,value)
    else
    if (value instanceof Array)
     // если это - массив.
     appendDataArray(form,name,value)
    else
     // если это - другой объект
     appendDataObject(form,name,value);
}

function appendMultiDataForm(form) // а далее  - имя1,значение1, имя2,значение2, ...
{ for (var i=1; i<arguments.length; i+=2) appendDataForm(form,arguments[i],arguments[i+1]);}
</script>

<!-- Проверка -->
<form>
<input type="button" value='test' onclick="javascript:appendMultiDataForm(this.form,'test1',12,'test2','hello')">
<input type="submit">
</form>
<body>
</html>


При каждом нажатии на кнопку test в форму добавляется два новых поля. Это можно проверить, отправив форму и проанализировав строку запроса.
Посмотреть профиль Отправить личное сообщение
Страница 1 из 1
Начать новую тему   Ответить на тему   вывод темы на печать
Показать сообщения:   
Список форумов Шадринский форум -> Программирование -> Программирование для школьников и студентов. -> Заполнение формы новыми полями

 
Перейти: 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы