Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 07.01.2018, 04:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Dbnfkbq
Устройство - какой либо счетчик, у которого надо записать дату изготовления, снять показатели с него...
Имелось ввиду не техническая штука сама по себе, а элемент формы ее определяющий, если речь шла о "больше 1", и требуется код это выполняющий.

Собственно вам кроме показанной структуры описывающей прибор нужна еще и кнопка "Добавить", по щелчку на которой клонировать первый элемент ".devices" (надо полагать, что хотя бы один прибор в форме должен быть), найти в клонированном список и поля ввода, сбросив их значения, после чего клонированное добавить в форму.

Но, поля формы не имеющие имен на сервер преданы не будут, а у вас ни одно поле не имеет имени, хотя идентификаторы ненужные имеют все. Идентификатор является уникальным значением, а при клонировании он будет дублироваться. Поэтому все идентификаторы выбросить.

Как именовать поля формы зависит от того, как они будут разбираться на сервере, то есть какой на сервере язык программирования используется. К примеру в РНР есть возможность самостоятельно ковырять сырые данные формы. Но проще получить уже готовое из массивов $_GET/$_POST, в которые РНР сам поместит данные пришедшей формы. При клонировании полей формы будут клонированы и их имена, а это будет означать, что в массив будут поступать одни и те же ключи. Так как в массиве не может быть дубликатов ключей, то РНР будет перезаписывать данные одноименных ключей. В итоге в массиве останутся значения последних одноименных полей формы. Чтобы этого не произошло поля формы можно именовать как элементы массива. Например список Тип так:

<select class="form-control" name="type_device[]">

Поле класса точности

<input type="text" class="form-control" name="class_tochnost[]" placeholder="Класс точности" required>

и т.п. Если форму отправить методом POST, то в массиве $_POST под ключами type_device и class_tochnost будут индексные массивы значений этих полей с количеством равным добавленных в форму полей. Как примечание: type_device и при этом class_tochnost, это как жаргон гопника на вечеринке деятелей искусства.

Что касается сохранения массива в базе, то не каждая база может хранить в себе массив как структуру. Самый дешевый вариант, как бесплатный, практически на всех хостах имеющийся, это MySQL, у которой нет типа Array, и записать в себя массив она не может. Но по большому счету этого и не требуется в данном случае. Кроме этого, форму содержащую помимо элементов описывающих множество устройств, которые кому-то как-то принадлежат, и эти "хозяева" также оперируют в форме, никак нельзя впихнуть в одну sql-таблицу.

Если есть вопрос "Потом в итоге заполненную форму в виде массива в БД отправлять? Или как с ним работать?" значит у вас вообще ничего нет, либо вы так далеки от этого, что ... А ведь приложение нужно начинать с проектирование БД, ибо она как матка в улье, скрипты же, это рабочие пчелы ее обслуживающие, а формы, это трутни ее оплодотворяющие. У вас получается, что матки нет, но есть трутни.

Последний раз редактировалось laimas, 07.01.2018 в 04:14.
Ответить с цитированием
  #12 (permalink)  
Старый 08.01.2018, 11:23
Интересующийся
Отправить личное сообщение для Dbnfkbq Посмотреть профиль Найти все сообщения от Dbnfkbq
 
Регистрация: 06.01.2018
Сообщений: 13

Хорошо, спасибо. Все замечания учту и исправлю.
С именами да, понимаю, оправдание, что полей много, а воображение и память англ слов заканчивалась хоть и ужасное, но есть При исправлении id на name все учту.
По поводу БД, вы, конечно, правы. Не отрицаю, что далек от этого, с БД мне еще не приходилось работать (точнее связывать с БД что-либо), но есть задача разобраться в этом.
Исправлю все замечания, попытаюсь красиво реализовать клонирование, составлю БД, а потом буду обращаться сюда снова
Ответить с цитированием
  #13 (permalink)  
Старый 09.01.2018, 14:57
Интересующийся
Отправить личное сообщение для Dbnfkbq Посмотреть профиль Найти все сообщения от Dbnfkbq
 
Регистрация: 06.01.2018
Сообщений: 13

Сообщение от laimas Посмотреть сообщение
Если есть вопрос "Потом в итоге заполненную форму в виде массива в БД отправлять? Или как с ним работать?" значит у вас вообще ничего нет, либо вы так далеки от этого, что ... А ведь приложение нужно начинать с проектирование БД, ибо она как матка в улье, скрипты же, это рабочие пчелы ее обслуживающие, а формы, это трутни ее оплодотворяющие. У вас получается, что матки нет, но есть трутни.
Здравствуйте, по ходу исправлений возникла идея, что если при помощи select давать пользователю выбор, сколько устройств необходимо описать, и при переходи на следующий шаг, их кол-во уже будет создано(если это возможно). Как мне это видится: мы получаем цифру (кол-во устройств) из select, затем с помощью массива, где длинной будет это кол-во создать форму с name[i]. Это возможно?
Ответить с цитированием
  #14 (permalink)  
Старый 10.01.2018, 15:01
Интересующийся
Отправить личное сообщение для Dbnfkbq Посмотреть профиль Найти все сообщения от Dbnfkbq
 
Регистрация: 06.01.2018
Сообщений: 13

Получилось реализовать, как хотел. Спасибо.
Получилось так:
function class_clone(c_clone) {
            if (c_clone == 1)
                $(".device_num").text("Прибор №1");
            else {
                for (var i = 0; i < c_clone-1; i++)
                    $(".devices").clone().addClass("newElement").appendTo("#third_step .form");
            }
        }


Добавляю новый класс, так как если копировать придется 3 раза, будет копироваться класс с уже одной копией

Последний раз редактировалось Dbnfkbq, 10.01.2018 в 15:03.
Ответить с цитированием
  #15 (permalink)  
Старый 10.01.2018, 15:54
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Зачем список для выбора, если надо добавить, добавили, надо еще один, добавили, а нужно удалить добавленное, тоже не проблема.
Ответить с цитированием
  #16 (permalink)  
Старый 10.01.2018, 16:50
Интересующийся
Отправить личное сообщение для Dbnfkbq Посмотреть профиль Найти все сообщения от Dbnfkbq
 
Регистрация: 06.01.2018
Сообщений: 13

Сообщение от laimas Посмотреть сообщение
Зачем список для выбора, если надо добавить, добавили, надо еще один, добавили, а нужно удалить добавленное, тоже не проблема.
Да, уже это понял, получилось все сделать как нужно.
Ответить с цитированием
  #17 (permalink)  
Старый 10.01.2018, 17:01
Интересующийся
Отправить личное сообщение для Dbnfkbq Посмотреть профиль Найти все сообщения от Dbnfkbq
 
Регистрация: 06.01.2018
Сообщений: 13

Сообщение от laimas Посмотреть сообщение
Зачем список для выбора, если надо добавить, добавили, надо еще один, добавили, а нужно удалить добавленное, тоже не проблема.
Подскажите, как мне теперь обработать данные в php (как получить все данные), и, на данном этапе, вывести их в файл каждый с новой строки?
Ответить с цитированием
  #18 (permalink)  
Старый 10.01.2018, 17:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Зачем в файл и каким образом? Я писал каким образом поля формы можно именовать, чтобы оперировать ими на сервере. Что у вас делается я не знаю.
Ответить с цитированием
  #19 (permalink)  
Старый 12.01.2018, 14:02
Интересующийся
Отправить личное сообщение для Dbnfkbq Посмотреть профиль Найти все сообщения от Dbnfkbq
 
Регистрация: 06.01.2018
Сообщений: 13

Сообщение от laimas Посмотреть сообщение
Зачем в файл и каким образом? Я писал каким образом поля формы можно именовать, чтобы оперировать ими на сервере. Что у вас делается я не знаю.
Я дал всем имена, как вы сказали, я спрашиваю про то, как мне их в виде массива теперь получить, чтобы работать с ними?
Ответить с цитированием
  #20 (permalink)  
Старый 12.01.2018, 14:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

$_POST или $_GET в зависимости от метода передачи.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как написать скрипт для проверки несколько логинов и паролей в одном input ? Vitalik2301 Общие вопросы Javascript 20 16.02.2017 15:39
Поменять несколько значений в input type="text" dpts Javascript под браузер 7 12.05.2015 18:36
Обработать сразу несколько переменных avantyrist jQuery 1 24.04.2015 14:30
Обработать событие oninput для пяти input carry Общие вопросы Javascript 1 30.10.2014 14:54
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27