Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: PHP не обрабатывает формы на JS в Explorer
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » PHP не обрабатывает формы на JS в Explorer

Страниц (1): [1]
 

1. BOPOH - 01 Марта, 2008 - 19:38:30 - перейти к сообщению
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <script language="JavaScript">
  3.   var inputs = 0;
  4.   function addFile(){
  5.     var table = document.getElementById('addFile');
  6.  
  7.     var tr    = document.createElement('TR');
  8.     var td1   = document.createElement('TD');
  9.     var td2   = document.createElement('TD');
  10.     var inp  = document.createElement('INPUT');
  11.  
  12.     if(inputs>0){
  13.       var img     = document.createElement('IMG');
  14.       img.setAttribute('src', 'images/admin_delete.png');
  15.       img.onclick = function(){
  16.         removeContact(tr);
  17.       }
  18.       td2.appendChild(img);
  19.     }
  20.     inp.setAttribute("Name", "files[]");
  21.       inp.setAttribute("type", "file");
  22.       inp.setAttribute("size", "150");
  23.       /*td1.setAttribute("class", "AddTopicFiles"); */
  24.       td1.setAttribute("width", "700px");
  25.  
  26.     table.appendChild(tr);
  27.     tr.appendChild(td1);
  28.     tr.appendChild(td2);
  29.     td1.appendChild(inp);
  30.  
  31.  
  32.     inputs++;
  33.   }
  34.   function removeContact(tr){
  35.     tr.parentNode.removeChild(tr);
  36.   }
  37. --></script>
  38. <form name="AddTopic" action="index.php" method="post" enctype="multipart/form-data">
  39. <table>
  40.      <tbody id="addFile">
  41.         <tr>
  42.         <td colspan="2"><a href="javascript:addFile();">Добавить файл</a></td>
  43.         </tr>
  44.  
  45.      </tbody>
  46.   </table>
  47. <input class="AddTopicControl" name="AddTopic" type="submit" value="Добавить">
  48. </form>


Это, конечно, обрезанный код.
Но он работает в Opera. Т.е. пердайтся массив $_FILES.
В Explorer массив пустой. ПОЧЕМУ? как исправить?
2. EuGen - 03 Марта, 2008 - 10:50:09 - перейти к сообщению
Потому, что вообще M$ IE вообще в подавляющем большинстве случаев ведет себя странно, если не сказать, неожиданно. При создании JS я, к примеру, ориентируюсь на Mozilla Firefox, обо там, на мой взгляд, наиболее правильно реализована DOM модель.
3. valenok - 03 Марта, 2008 - 16:38:26 - перейти к сообщению
Скорее всего потому что
document.createElement('INPUT');

в фф и опере объект создаётся в том же месте где произошёл вызов
а в ИЕ он создаётся где то в конце документа вне тега формы

Попробуйте использовать appendChild(newChild)
4. BOPOH - 04 Марта, 2008 - 06:30:21 - перейти к сообщению
valenok пишет:
Попробуйте использовать appendChild(newChild)


Я правильно понял?
Нужно заменить
createElement на appendChild???
5. valenok - 04 Марта, 2008 - 14:24:23 - перейти к сообщению
Только не у документа, а у нужной строки в таблице.
Попробуйте, может получится.

 

Powered by ExBB FM 1.0 RC1