Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Загрузка нескольких фотографий

Сообщения:  [1-10]   [11-11] 

 
 автор: Костян   (16.06.2008 в 12:47)   письмо автору
 
   для: sim5   (14.06.2008 в 19:53)
 

Спасибо!

   
 
 автор: sim5   (14.06.2008 в 19:53)   письмо автору
 
   для: Костян   (14.06.2008 в 19:23)
 

С чего вы решили, что я нервничаю? :)) Не беспокойтесь за мои нервы, они у меня в порядке.) Насчет книги, с которой можно начинать, сказать не могу. Дело в том, что изучение JS потребует изучения и DOM модели браузера, а она различна, например, у IE и Opera. Поэтому нужна книга, которая бы описывала и эти различия, а не просто давала понятия о языке JS. Я пользуюсь "JavaScript. Библия пользователя" Д. Гудман, М. Моррисон.

   
 
 автор: Костян   (14.06.2008 в 19:23)   письмо автору
 
   для: sim5   (14.06.2008 в 07:02)
 

Я извиняюсь, что заставил Вас нервничать. Правда, не хотел. Но в своем сообщении я лишь просил помочь с выводом именно сообщения по поводу загрузки трех фото. В моем случае больше трех и не загрузится физически, просто об этом нужно было предупредить юзера. Теперь мне все ясно. Большое спасибо за помощь.
Если не трудно, подскажите, с какой книжкой быстрее и понятнее будет изучить JS? И с чего лучше начать?

   
 
 автор: sim5   (14.06.2008 в 07:02)   письмо автору
 
   для: Костян   (13.06.2008 в 21:10)
 

Вам не достаточно того, что я написал? Вы хотя бы понимаете, что означает эта запись в коде:
thisChilds = newTr.getElementsByTagName('td'); ??? С какого боку она у вас должна проверять наличие 3 полей file?
Я же вам написал самый простой подход, который не требует от вас глубоких знаний JS. Ну что может быть проще - посчитайте все поля вашей формы, включая скрытые, другие текстовые, списки и т.д. (если они у вас есть), включая и кнопку submit. Плюс к этим полям добавтье 3 поля ввода: одно поле file и два поля, которыми вы добавляете и удаляете элемент file. Добавляя/удаляя поле file, в форме добавляются/удаляются по 3 элемента. Неужели так трудно посчитать сколько всего элементов в форме будет при трех полях file? А если это вы сможете сосчитать, то останется:
function addFile(btn) {  
  if (document.forms('fileform').elements.length == N) {
     alert("Можно загрузить только 3 фото");
     return false;
  }   
  //код далее

Где N - это число всех полей формы после добавления трех полей file.
Под каким браузером у вас не очищаются поля, и как вы это делаете?

   
 
 автор: Костян   (13.06.2008 в 21:10)   письмо автору
 
   для: Костян   (13.06.2008 в 07:26)
 

Не работает очистка полей. И форма виснет, вообще ни на что не реагирует. А по поводу ограничения количества загружаемых файлов - мне достаточно если при попытке загрузки четвертого выйдет сообщение о том, что возможна загрузка только трех. Я пытался вставить условие в цикл в JS - не выходит сообщения. Где ошибка? Вот код:

<!-- 
function dropFile(btn) 

  if(document.getElementById) 
  { 
    while (btn.tagName != 'TR') btn = btn.parentNode; 
    btn.parentNode.removeChild(btn); 
  } 

function addFile(btn) 

  if(document.getElementById) 
  { 
    while (btn.tagName != 'TR') btn = btn.parentNode; 
    var newTr = btn.parentNode.insertBefore(btn.cloneNode(true), 
                                            btn.nextSibling); 
    thisChilds = newTr.getElementsByTagName('td'); 
    for (var i = 0; i < thisChilds.length; i++) 
    { if (i > 3) alert("Можно загрузить только 3 фото") ;
          if (thisChilds[i].className == 'files') 
      thisChilds[i].innerHTML = ' <input size="32" name="att[]"  class=input type="file">'; 

     } 
  } 

//--> 

   
 
 автор: Костян   (13.06.2008 в 07:26)   письмо автору
 
   для: sim5   (13.06.2008 в 06:23)
 

Да, все гораздо сложнее, чем я пытался сделать сам. Спасибо большое.

   
 
 автор: sim5   (13.06.2008 в 06:23)   письмо автору
 
   для: Костян   (12.06.2008 в 22:46)
 

Не задавайте вопросов касающихся JS в разделе MySQL - они могут остаться у вас без ответа.
Что касается "чтобы новое поле для ввода файла загружалось пустым", значит вы смотрите код под FF, в IE оно и будет пустым. Ограничить число добавляемых элементов можно, но на сервере это нужно будет все равно проверять, так как ограничение будет на клиенте, и обойти его труда не составит. Сделайте так. Укажите имя форме, например, fileform. В функцию addFile первой строкой добавить:

function addFile(btn) { 
  if (document.forms('fileform').elements.length == 10) return false;  
  //код далее

Это, если исходить из того, что в вашей форме, кроме полей выбора изображений, кнопок + и -, и кнопки submit, больше ничего нет. Иначе учитывайте то, что при каждом добавлении, у вас добавляется по три элемента в форму. Складывая их с уже имеющимися, получите требуемое ограничение на число добавляемых полей file.
Для того чтобы очистить поля добавляемых элементов, в эту же функцию, в самый ее конец, добавьте следующее:

var f = document.forms('fileform').elements;
  for (i=f.length-1; i>0; i--) {
    if (f[i].type=="file") {
      f[i].value = "";
      break;
    }
  }

Если эта форма одна на странице, то имени ей можно не давать, а обращаться к ней по индексу:
document.forms[0].

   
 
 автор: Костян   (12.06.2008 в 22:46)   письмо автору
 
   для: sim5   (09.06.2008 в 21:22)
 

sim5, воспользовался Вашей ссылкой, все отлично работает, только есть две небольшие мелочи, которые немного портят общую картину:
1. Подскажите пожалуйста, как сделать так, чтобы новое поле для ввода файла загружалось пустым, а не с путем к предыдущему загруженному файлу.
2. Каким образом можно ограничить количество загружаемых файлов, предположим, их должно быть три.

   
 
 автор: Костян   (10.06.2008 в 06:24)   письмо автору
 
   для: sim5   (09.06.2008 в 21:22)
 

Да, ошибся веткой, извиняюсь. Спасибо за помощь!!!

   
 
 автор: sim5   (09.06.2008 в 21:22)   письмо автору
 
   для: Костян   (09.06.2008 в 21:05)
 

Это никаким боком к MySQL не относится. Смотрите здесь пример:
http://softtime.ru/forum/read.php?id_forum=4&id_theme=54382&page=1

   

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования