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

HTML+CSS+JavaScript

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

 

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

вид форума:
Линейный форум Структурный форум

тема: добавления нескольких полей для загрузки фото
 
 автор: t3ma   (04.09.2009 в 19:59)   письмо автору
 
 

Подскажите как реализовать как тут http://ipicture.ru/
нажимаем на + появляется еще одно поле для загрузки
всего можно добавить 5 полей..
если на + нажали то появляется - чтоб это поле убрать..

  Ответить  
 
 автор: elenaki   (04.09.2009 в 20:55)   письмо автору
 
   для: t3ma   (04.09.2009 в 19:59)
 

на этом форуме нарыто:
это скрипт -

<SCRIPT LANGUAGE="JavaScript">
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 (thisChilds[i].className == 'files') thisChilds[i].innerHTML = '<input size="32" name="att[]" class=input type="file">';
}
}
}
</script>


это в теле -

<table>
<tr>
<td>Фотография:</td>
<td><input type="file" size="25" name="att[]" class=input>&nbsp;<br />
<input type="button" name="drop" value=" &minus; " onclick="dropFile(this);">&nbsp;<input type="button" value=" + " onclick="addFile(this);"></td>
<td>Вы можете добавить еще фотографий, щелкнув на [+] или удалить лишние, щелкнув на [-]</td>
</tr>
</table>


тут нет ограничения на 5 фоток, но его можно добавить...

  Ответить  
 
 автор: t3ma   (05.09.2009 в 07:42)   письмо автору
 
   для: elenaki   (04.09.2009 в 20:55)
 

ребят помогите пожалуйста переделать чтоб можно было только 5 добавить
и кнопки + и - находились только под последней добавленной а то я в яваскрипт не шуры муры :))

  Ответить  
 
 автор: mikha   (05.09.2009 в 17:37)   письмо автору
 
   для: t3ma   (05.09.2009 в 07:42)
 

Вот, переписал, честно говоря особо не вникая.
Добавить удалить, я бы оставил, только скомпоновал бы по другому.
Если же надо по другому, завтра посмотрю, у нас уже поздно.
<SCRIPT LANGUAGE="JavaScript"> 
function newFunc(btn){
  for(var i = 0, f = 0, obj = btn.form, len = obj.elements.length; i < len; i++) if(obj.elements[i].type == 'file') f++;
  if(f >= 5 && btn.value == ' + '){
    alert("Фото не может быть больше 5");
    return;
  }
  if(f == 1 && btn.value == ' - '){
    alert("Фото не может быть меньше 1");
    return;
  }
  if(document.getElementById){
    if(btn.value == ' + '){
      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(thisChilds[i].className == 'files') thisChilds[i].innerHTML = '<input size="32" name="att[]" class="input" type="file">';
      }
    }
    if(btn.value == ' - '){
      while(btn.tagName != 'TR') btn = btn.parentNode;
      btn.parentNode.removeChild(btn);
    }
  }
}
</script>
<form>
<title>добавить фото</title>
<table>
  <tr>
    <td>Фотография:</td>
    <td><input type="file" size="25" name="att[]" class="input"></td>
    <td><input type="button" name="drop" value=" - " onClick="newFunc(this);">
      <input type="button" name="button" value=" + " onClick="newFunc(this);" ></td>
  </tr>
</table>
</form>

  Ответить  
 
 автор: t3ma   (06.09.2009 в 18:37)   письмо автору
 
   для: mikha   (05.09.2009 в 17:37)
 

спасибо большое

  Ответить  
 
 автор: t3ma   (09.12.2009 в 10:29)   письмо автору
 
   для: mikha   (05.09.2009 в 17:37)
 

а как еще сделать чтобы по нажатию на + (плюс) добавлялось сразу 3 поля ? и при этом нельзя добавить больше 9 ?

  Ответить  
 
 автор: t3ma   (09.12.2009 в 19:12)   письмо автору
 
   для: t3ma   (09.12.2009 в 10:29)
 

...

  Ответить  
 
 автор: t3ma   (11.12.2009 в 15:20)   письмо автору
 
   для: t3ma   (09.12.2009 в 10:29)
 

ребят что никто не поможет ?

  Ответить  
 
 автор: mikha   (12.12.2009 в 11:45)   письмо автору
 
   для: t3ma   (11.12.2009 в 15:20)
 

<script type="text/javascript">
function myFunc(n) {
  var all_div = document.getElementById('all').getElementsByTagName('div').length;
  for (var i = 0; all_div < 9 && i < n; i++, all_div++) {
    var child = document.createElement('DIV');
    child.innerHTML = 'Фотография: <input type="file" size="25" name="att[]" > <input type="button" name="m" value=" - " onClick="document.getElementById(\'all\').removeChild(this.parentNode);"> <input type="button" name="p" value=" + " onClick="myFunc(1);" >';
    document.getElementById('all').appendChild(child);
  }
}
</script>
<form>
  <div id="all">
    <div>Фотография:
      <input type="file" size="25" name="att[]" >
      <input type="button" name="m" value=" - " onClick="document.getElementById('all').removeChild(this.parentNode);">
      <input type="button" name="p" value=" + " onClick="myFunc(1);" >
    </div>
  </div>
  <input name="add_n" type="button" onClick="myFunc(3);" value="Добавить несколько">
</form>

  Ответить  
 
 автор: t3ma   (12.12.2009 в 17:05)   письмо автору
 
   для: mikha   (12.12.2009 в 11:45)
 

Огрномнейшее Вам Спасибо ! Выручили !

  Ответить  
Rambler's Top100
вверх

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