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

HTML+CSS+JavaScript

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

 

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

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

тема: добавление одного и нескольких полей
 
 автор: *m*   (08.11.2011 в 11:34)   письмо автору
 
 

Всем привет, подскажите простой скрипт для добавления полей, мне нужно чтобы три раза можно было добавить одинаковые поля, по типу:

нажал пользователь на +, в виде ссылки, появились доп поля,

поле 1 select  | поле 2 select | поле 3 select


нажал второй раз на + еще такие же, третий, дальше ссылка на добавление еще полей исчезает, максимум 3..

и вот такое момент, в зависимости от первого селекта, количество полей, может изменятся на (один),
например:

поле 1 select (val=1) | поле 2 select | поле 3 select


поле 1 select (val=2)  | поле 2 select | поле 3 select | поле 4 select


яву скрипт совсем не знаю, подскажите пожалуйста, спасибо.

  Ответить  
 
 автор: АЯС   (08.11.2011 в 15:54)   письмо автору
 
   для: *m*   (08.11.2011 в 11:34)
 

А я вот НЕ ЗНАЮ, как "подсказать" тому, кто яваскрипт "совсем не знает".

Если б вы хоть что-то знали, я бы дал вам ссылку на результаты здешнего поиска - ваша тема много-много раз здесь "перетиралась"

[поправлено модератором]

  Ответить  
 
 автор: *m*   (08.11.2011 в 16:15)   письмо автору
 
   для: АЯС   (08.11.2011 в 15:54)
 

дайте ссылки пожалуйста, я попробую сам разобраться.
я думал это не сложный скрипт коих готовых полно, спасибо.

  Ответить  
 
 автор: АЯС   (08.11.2011 в 21:50)   письмо автору
 
   для: *m*   (08.11.2011 в 16:15)
 

См., например, http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=77686

  Ответить  
 
 автор: *m*   (17.11.2011 в 13:06)   письмо автору
 
   для: АЯС   (08.11.2011 в 21:50)
 

спасибо, но не подошло, мне нужна возможность добавления и удаления полей..
я вот нашел в сети такой скрипт, он в принципе рабочий, мне подходит, но нужно, его немного адаптировать. я подозреваю что ничего сложного, но мне без помощи, этого не сделать.. поможете?

нужно:
1) чтобы при выборе типа "детский" появлялось скрытое поле, для указания возраста, а в случае, "реб+реб" два поля, для указания возрастов.
примерно так:

// если  "десткий"
1 селект   2селект  3 селект (был скрытым)
детский |  1           | 3 года

// если  "реб+реб"
1 селект   2селект  3 селект (был скрытым) 4 селект (был скрытым)
реб+реб |  1         | 3 года                       | 4 года


2)сделать ограничение не больше трех таких доп полей.

и вот такой вопрос, можно ли изначально не показывать вообще доп поля? т.е сейчас, в данном случае показываются доп поля, а можно сделать так чтобы они начинали показываться, только в случае нажатия на ссылку "добавить" ? или при нажатии на какую нибудь другую ссылку, например "добавить еще варианты" .Тогда можно было бы раскоментировать строку
if (c==0) return false; else c--;
, особеностью данного скрипта является тот факт, что если удалить последний элемент, то добавить вновь доп поля, без перезагрузки страницы будет нельзя..

вот скрипт:

<script>
var c=0; //счётчик количества строк
function addline()
{
    c++; // увеличиваем счётчик строк
    s=document.getElementById('table').innerHTML; // получаем HTML-код таблицы
    s=s.replace(/[\r\n]/g,''); // вырезаем все символы перевода строк
    re=/(.*)(<tr id=.*>)(<\/table>)/gi; 
                // это регулярное выражение позволяет выделить последнюю строку таблицы
    s1=s.replace(re,'$2'); // получаем HTML-код последней строки таблицы
    s2=s1.replace(/\[\d+\]/gi,'['+c+']'); // заменяем все цифры к квадратных скобках
                // на номер новой строки
    s2=s2.replace(/(rmline\()(\d+\))/gi,'$1'+c+')');
                // заменяем аргумент функции rmline на номер новой строки
    s=s.replace(re,'$1$2'+s2+'$3');
                // создаём HTML-код с добавленным кодом новой строки
    document.getElementById('table').innerHTML=s;
                // возвращаем результат на место исходной таблицы
    return false; // чтобы не происходил переход по ссылке
}
function rmline(q)
{
                // if (c==0) return false; else c--;
                // если раскомментировать предыдущую строчку, то последний (единственный) 
                // элемент удалить будет нельзя.
    s=document.getElementById('table').innerHTML;
    s=s.replace(/[\r\n]/g,'');
    re=new RegExp('<tr id="?newline"? nomer="?\\['+q+'.*?<\\/tr>','gi');
                // это регулярное выражение позволяет выделить строку таблицы с заданным номером
    s=s.replace(re,'');
                // заменяем её на пустое место
    document.getElementById('table').innerHTML=s;
    return false;
}
</script>


а так выглядит html

 <form method="POST" >
<span id="table">
<table border=0 cellspacing=0 cellpadding=3>
<tr><td>Тип</td><td>Кол-во</td><td>
<a href="#" onclick="return addline();">добавить</a></td></tr>
<tr id="newline" nomer="[0]">
<td><select name="room[]">
     <option value="0">отдельный</option>
     <option value="1">детский</option>
     <option value="2">реб+реб</option>
    </select></td>
   <td><select name="col[]">
     <option value="1">1</option>
     <option value="2">2</option>
     <option value="3">3</option>
   </select></td>
<td valign="top"><a href="#" onclick="return rmline(0);">удалить</td></tr></table>
</span>
   <button type="submit" id="send">Отправить</button>
   </form>

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

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