Показать сообщение отдельно
  #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.
Ответить с цитированием