Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Добавление новых полей к форме. (https://javascript.ru/forum/dom-window/1301-dobavlenie-novykh-polejj-k-forme.html)

EZh 12.06.2008 17:23

Добавление новых полей к форме.
 
Вопрос состоит в следующем. Необходима форма где в одном из полей вводиться цифра и затем появляются еще дополнительные поля для заполнения, их число равно водимой цифре. Кое как я это дело написал, но проблема в том что новые поля выводятся не в форме а в новом окне. Помогите решить эту проблему.

Вот кусочек формы со скриптом.
<H3><B><I>Авторы публикации</I></B></H3>
<TABLE WIDTH="100%">
<TR><TD WIDTH="250">Количество авторов:</TD> 
<TD><input name="n" type="text" tabindex="18" size="5" onChange="selChange(this.value)"></TD></TR>
</TABLE>
<script language ="JavaScript">
var i;
function selChange(n) {
for(i = 1; i <=n; i++){
document.write ("ФИО автора <input name=\"Name",i,"  type=\"text\" tabindex=\"1\" size=\"50\"><br>");
}
}
</script>

Андрей Параничев 12.06.2008 21:47

<H3><B><I>Авторы публикации</I></B></H3>
<TABLE WIDTH="100%">
<TR><TD WIDTH="250">Количество авторов:</TD> 
<TD><input name="n" type="text" tabindex="18" size="5" onChange="selChange(this.value)"></TD></TR>
</TABLE>
<span id="container"></span>
<script language ="JavaScript">
var i;
function selChange(n) {
var str = "";
for(i = 1; i <=n; i++){
   str += "ФИО автора <input name=\"Name"+ i +"  type=\"text\" tabindex=\"1\" size=\"50\"><br>";
   }
document.getElementById("container").innerHTML = str;
}
</script>

EZh 12.06.2008 21:56

To Андрей Параничев. Спасибо огромное. Я просто не когда до этого с JS не сталкивался. А тут возникла жизненая необходимость. Еще раз спасибо.

EZh 13.06.2008 05:28

У меня появилась еще одна проблема. Все хорошо в форме появляются новые поля, но данные в них не передаются сценарию. Что делать?

Андрей Параничев 13.06.2008 14:09

EZh,
Серверному сценарию, имеете в виду?
Тут вот еще ошибку с кавычками заметил:
str += "ФИО автора <input name=\"Name"+ i +"\"  type=\"text\" tabindex=\"1\" size=\"50\"><br>";

EZh 14.06.2008 02:51

Да серверному. Все другие данные из формы передаются методом POST. Как быть с теми данными поля для которых создаются при помощи JS?

tenshi 14.06.2008 03:24

пост и гет - невзаимоисключающи ;-)

Андрей Параничев 14.06.2008 04:05

EZh,
После исправления кавычки всё-равно данные не приходят?
Значит вы делаете что-то неправильно, потому что вот этот код:
<body>
<form action="" method="POST">
<span id="some"></span>
<script>
   var str = "";
	for(var i=0; i<5; i++)
	{
		str += "<input name='some_"+ i +"' value='1' /><br />";
	}
	document.getElementById("some").innerHTML += str;
</script>
<input type="submit" />
</form>
</body>


На выдаче print_r($_POST) дал мне:
Array
(
    [some_0] => 1
    [some_1] => 1
    [some_2] => 1
    [some_3] => 1
    [some_4] => 1
)


Часовой пояс GMT +3, время: 07:06.