|
|
|
| Добрый вечер.
Проблема закралась, весь мозг сломал....
Добавляю динамически JavaScript'ом элемент типа file в форму. А когда отправляю данные с формы, все отправляется, кроме этих динамически созданных элементов. Т.е. сам элемент на экране виден но сам файл на сервер не отправляется.
Причем все это не работает только в FF и Opera. По крайней мере в IE все работает.
Добавляю так:
function add_file(){
var theTable = document.getElementById('file_tbl');
var row = theTable.insertRow(theTable.rows.length);
var cell = row.insertCell(0);
var f=document.createElement('input');
f.type="file";
f.name='file_'+theTable.rows.length;
f.id='file_'+theTable.rows.length;
cell.appendChild(f);
};
Таблица file_tbl находится внутри формы.
Подскажите, в чем может быть дело?
Заранее спасибо. | |
|
|
|
|
|
|
|
для: NovikovMA
(04.04.2008 в 23:06)
| | up | |
|
|
|
|
|
|
|
для: NovikovMA
(04.04.2008 в 23:06)
| | а тип формы у тебя мультипарт фрм дата? | |
|
|
|
|
|
|
|
для: deman-b
(05.04.2008 в 15:55)
| | Ну так а эти "добавленные" файлы хоть обрабатываются? | |
|
|
|
|
|
|
|
для: ddhvvn
(05.04.2008 в 16:02)
| | чем обрабатываются? На сервере их не видно. И судя по скорости, они вообще на сервер не попадают %) | |
|
|
|
|
|
|
|
для: deman-b
(05.04.2008 в 15:55)
| | да
<form name="order" action="new_order.php" Method="POST" enctype='multipart/form-data'> | |
|
|
|
|
|
|
|
для: NovikovMA
(04.04.2008 в 23:06)
| | выложи исходники | |
|
|
|
|
|
|
|
для: deman-b
(05.04.2008 в 16:51)
| | Сама форма очень большая, так что начало, середину и конец тока покажу.
<table border="1" width="700">
<form name="order" action="new_order.php" Method="POST" enctype='multipart/form-data'>
<tr>
<td width="100%" colspan="2" align="center"><h1>Новая заявка</h1></td>
</tr>
<tr>
....
....
....
<table border="0" id="file_tbl" cellpadding="0" cellspacing="1">
<tr><td>
<input type="FILE" name="file_1" id="file_1">
</td></tr>
</table>
<input type="button" name="add_file_but" id="add_file_but" OnClick="JavaScript:add_file();" value="Добавить файл">
</td></tr>
....
....
....
<tr>
<td colspan="2" align="center">
<input type="submit" name="button2" value=" Далее ">
</td>
</tr>
</form>
</table>
|
Скрипт, который добавляет еще одно поле.
function add_file(){
var theTable = document.getElementById('file_tbl');
var row = theTable.insertRow(theTable.rows.length);
var cell = row.insertCell(0);
var f=document.createElement('input');
f.type="file";
f.name='file_'+theTable.rows.length;
f.id='file_'+theTable.rows.length;
cell.appendChild(f);
};
|
По умолчанию есть поле для одного файла. Он передается нормально. А все, добавленные скриптом - нет :-( | |
|
|
|
|
|
|
|
для: NovikovMA
(06.04.2008 в 19:49)
| | вынесите form за таблицу
<form name="order" action="new_order.php" Method="POST" enctype='multipart/form-data'>
<table border="1" width="700">
....
....
</table>
</form>
|
| |
|
|
|
|
|
|
|
для: Crux
(07.04.2008 в 06:35)
| | какая разница?
таблица file_tbl находится внутри формы. Так что вынос ни к чему не приведет. А так будет не большой, но напрягающий отступ перед таблицей в IE | |
|
|
|
|
|
|
|
для: NovikovMA
(08.04.2008 в 14:37)
| | >какая разница?
а Вы пробовали?.. разница есть и причем большая!
отступ это не проблема убирается легко с использованием стилей. | |
|
|
|
|
|
|
|
для: Crux
(08.04.2008 в 15:00)
| | пипец %)
работает. Объясните, если не сложно или дайте ссылку, почему это так? | |
|
|
|
|
|
|
|
для: NovikovMA
(08.04.2008 в 16:17)
| | собственно чему Вы удивляетесь?
нарушили иерархическую структуру веб-документа, в частности структуру таблицы, вот Вам и результат.
Ваша форма повисла в воздухе и DOM-модель её не видет. | |
|
|
|