Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 07.11.2017, 12:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

Сообщение от laimas
это нужно выбрасывать,
ок! ниже код исправляющий подсчёт, но лучше конечно прислушаться к laimas, и имена полей изменить

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
 <script>


$(document).ready(function(){


  var i = 1;

  $('#add').click(function(event) {event.preventDefault();
            $('\n\
    \n\
<!--------- Строка начало --------->\n\
        <div class="field">\n\
            <div class="col_left">\n\
                <div class="border">\n\
                    <input type="text" name="tag_' + i + '" value="" placeholder="TEG" />\n\
                </div>\n\
            </div>\n\
            <div class="col_centr">\n\
                <div class="border">\n\
                    <input type="text" name="tag_name_' + i + '" value="" placeholder="Название поля" />\n\
                </div>\n\
            </div>\n\
            <div class="col_right">\n\
                <div class="border">\n\
                    <select type="radio" name="tag_template_' + i + '">\n\
                        <option value="0">Текстовое</option>\n\
                        <option value="1">Числовое с переводом числа в текст</option>\n\
                        <option value="2">Срок исполнения</option>\n\
                    </select>\n\
                </div>\n\
            </div>\n\
            <div class="clear"></div>\n\
        </div>\n\
        <!--------- Строка конец --------->\n\
\n\
').fadeIn('slow').appendTo('.inputs');
                i++;
                document.getElementById('last_numer').value = i;

  });

  $('#remove').click(function(event) {
            if(i == 1) return;
            event.preventDefault();
            $('.field:last').remove();
            i--;
            document.getElementById('last_numer').value = i;

  });


// here's our click function for when the forms submitted

  $('.submit').click(function(){


  var answers = [];
    $.each($('.field'), function() {
        answers.push($(this).val());
    });

    if(answers.length == 0) {
        answers = "none";
    }

  alert(answers);

  return false;

  });



});

</script>

</head>

<body>
<!--------- Строка начало --------->
        <div class="field">
            <div class="col_left">
                <div class="border">
                    <input type="text" name="tag_1" value="" placeholder="TEG" />
                </div>
            </div>
            <div class="col_centr">
                <div class="border">
                    <input type="text" name="tag_name_1" value="" placeholder="Название поля" />
                </div>
            </div>
            <div class="col_right">
                <div class="border">
                    <select type="radio" name="tag_template_1">
                        <option value="0">Текстовое</option>
                        <option value="1">Числовое с переводом числа в текст</option>
                        <option value="2">Срок исполнения</option>
                    </select>
                </div>
            </div>
            <div class="clear"></div>
        </div>
        <!--------- Строка конец --------->
        <div class="inputs">

        </div>
        <input id="last_numer" name="" value="1">
    <!--------- Строка начало --------->
        <div class="form_group">
            <div class="col_left">
            <a href="#" id="add">Добавить</a> | <a href="#" id="remove">Удалить</a>
            <div class="clear"></div>
        </div>
        </div>
        <!--------- Строка конец --------->

    </body>
</html>

Последний раз редактировалось рони, 07.11.2017 в 13:12.
Ответить с цитированием
  #12 (permalink)  
Старый 07.11.2017, 12:46
Интересующийся
Отправить личное сообщение для skitskis Посмотреть профиль Найти все сообщения от skitskis
 
Регистрация: 07.11.2017
Сообщений: 21

Сообщение от laimas Посмотреть сообщение
вот так надо:

tag[], tag_nam[], ....

И получите массив в $_POST.
спасибо, попробую так.
Ответить с цитированием
  #13 (permalink)  
Старый 07.11.2017, 12:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

skitskis,
$("[name='tag[]']").each()

но наверно будет достаточно $(".field").serialize()
Ответить с цитированием
  #14 (permalink)  
Старый 07.11.2017, 12:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

skitskis,
еще раз и последний - именование полей как tag_1, tag_2, ... это бессмыслица ничего кроме геморроя на сервере не дающая, так как требует сканирования ключа. Это и на клиенте геморрой, так как вся эта кухня с расчетом ради этого у вас и крутится.

Начните с именования полей, и просто клонирование, и код будет лаконичней, и мусора в нем будет меньше.
Ответить с цитированием
  #15 (permalink)  
Старый 07.11.2017, 12:52
Интересующийся
Отправить личное сообщение для skitskis Посмотреть профиль Найти все сообщения от skitskis
 
Регистрация: 07.11.2017
Сообщений: 21

рони, спасибо!
Работает.
Я так понимаю добавили только это:
.click(function(event) {event.preventDefault()

А почему он считал на прибавление нормально а на минус нет?
Ответить с цитированием
  #16 (permalink)  
Старый 07.11.2017, 12:55
Интересующийся
Отправить личное сообщение для skitskis Посмотреть профиль Найти все сообщения от skitskis
 
Регистрация: 07.11.2017
Сообщений: 21

laimas, рони
Спасибо Вам большое.
Ответить с цитированием
  #17 (permalink)  
Старый 07.11.2017, 12:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

skitskis,
все таки вы остановились на самом худшем, это значит, что и в РНР у вас не очень продуман код. )
Ответить с цитированием
  #18 (permalink)  
Старый 07.11.2017, 13:02
Интересующийся
Отправить личное сообщение для skitskis Посмотреть профиль Найти все сообщения от skitskis
 
Регистрация: 07.11.2017
Сообщений: 21

laimas
неее, я попробую как советовали. tag[], tag_nam[], ....
Ответить с цитированием
  #19 (permalink)  
Старый 07.11.2017, 13:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от skitskis
я попробую как советовали
В этом случае "бухгалтерии" на клиенте не нужно, я же вижу что так и осталось - добавление с описанием, нумерацией... Кнопка удалить должна быть у каждого добавляемого блока своя, а Добавить одна общая. И список не может быть типом "radio".

Начинать надо с сервера, он и определит что нужно будет на клиенте.
Ответить с цитированием
  #20 (permalink)  
Старый 07.11.2017, 13:34
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,750

Сегодня с утра решал почти такую же задачу.
https://jsfiddle.net/320zmnxw/
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление значение в поле input file – в коллекции files все равно содержится файл. artur567 Events/DOM/Window 1 08.05.2016 18:00
Добавление новых INPUT по нажатию ENTER paveltkachev jQuery 10 24.12.2014 11:35
удаление input psfdek Элементы интерфейса 1 05.06.2014 10:29
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
Добавление текста к input элементу Cepin Элементы интерфейса 4 05.05.2010 09:10