Добавление новых полей к форме.
Вопрос состоит в следующем. Необходима форма где в одном из полей вводиться цифра и затем появляются еще дополнительные поля для заполнения, их число равно водимой цифре. Кое как я это дело написал, но проблема в том что новые поля выводятся не в форме а в новом окне. Помогите решить эту проблему.
Вот кусочек формы со скриптом. <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> |
<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> |
To Андрей Параничев. Спасибо огромное. Я просто не когда до этого с JS не сталкивался. А тут возникла жизненая необходимость. Еще раз спасибо.
|
У меня появилась еще одна проблема. Все хорошо в форме появляются новые поля, но данные в них не передаются сценарию. Что делать?
|
EZh,
Серверному сценарию, имеете в виду? Тут вот еще ошибку с кавычками заметил: str += "ФИО автора <input name=\"Name"+ i +"\" type=\"text\" tabindex=\"1\" size=\"50\"><br>"; |
Да серверному. Все другие данные из формы передаются методом POST. Как быть с теми данными поля для которых создаются при помощи JS?
|
пост и гет - невзаимоисключающи ;-)
|
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, время: 09:21. |