Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Узнать имя input


Автор: griker 21.10.2006, 20:13
Я создал форму с определённым количеством input
В данной формы присутствует кнопка динамически добавляющая input
Соответственно производить данные добавления input можно бесчисленное количество раз
Вот содержание данного скрипта:
Код

<script language="javascript">
var items=1;
function AddItem() {
  div=document.getElementById("items");
  button=document.getElementById("add");
  items++;
  newitem="<strong>Поле " + items + ": </strong>";
  newitem+="<input type=\"text\" name=\"item" + items;
  newitem+="\" size=\"45\"><br>";
  newnode=document.createElement("span");
  newnode.innerHTML=newitem;
  div.insertBefore(newnode,button);
}
</script>

Данная форма обрабатывается обработчиком написанным на PHP и соответственно мне нужно знать имена input созданных предоставленным скриптом.
Вопрос заключается в том каким образом я могу узнать имена данных input
В строке:
Код

newitem+="<input type=\"text\" name=\"item" + items;

Имя соответствует item, но при создании крупного количества input, каждый input располагает одним и темже названием item???
Если да, то каким образом обрабатывать данные inputs

Каким образом выглядит сама форма:
Код

<form method="POST" action="result.php">
<input type="button" onClick="AddItem" value="Add input">
<input type="submit" value="submit">
</form>

Благадарю smile

Автор: SelenIT 21.10.2006, 20:37
Очевидно, имена будут разные: item1, item2 и т.д. по порядку. В любом случае узнать их в php-обработчике можно, перебирая $_POST циклом foreach. Еще удобнее давать им всем имя item[] - тогда в PHP автоматом придет массив $_POST['item'].

Но приведенная ф-ция - какая-то очень негибкая. Она жестко привязана к разметке, вставляет новые input-ы только в заранее созданный div, который по логике должен находиться внутри формы. Поскольку в приведенном коде формы никакого <div id="items"> не наблюдается, логично предположить, что он находится вне формы, соответственно создаваемые input-ы в форму не попадут и вообще никуда не передадутся...

Автор: griker 21.10.2006, 20:50
Благодарю вас за отличную помощь smile 

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