Разница значений полей динамической формы HTML

У меня следующая структура формы.

Примечание: его динамический (из jquery) и одни и те же поля появляются несколько раз, поэтому мне нужно использовать [] для имен полей, чтобы получить массив.

Select users : <input type = "radio" name = "user_id[]" />
Select Duration :<input type = "radio" name = "six_months[]" />
OR : <input type = "radio" name = "one_year[]" />
OR : <input type = "radio" name = "three_year[]" />

user_id важен, и его нельзя оставлять пустым. Остальные - это параметры. Означает, что вам нужно выбрать только одну продолжительность.

Теперь как я смогу различать значения, что у user X есть six months, а у user Y есть one year.

Есть ли лучший способ / подход / лучшая практика?

порядковый номер каждого пользовательского значения будет таким же. Например, если пользователь X находится в индексе 2, то их значение six_months будет в индексе 2, а их значение one_year будет в индексе 2.

Abdul Rauf 13.03.2018 14:13

Почему нет переключателей параметров продолжительности или раскрывающегося списка?

Patrick Q 13.03.2018 14:15

@PatrickQ это радиокнопки. Но я постарался минимизировать вопрос. Я его редактирую.

Dip 13.03.2018 14:17

Назовите радиостанции одинаковыми (чтобы они были группой), каждая со своим уникальным value = "". Тогда это будет одно значение имени, входящее в duration[], с которым было выбрано только одно значение. Затем вы просто сопоставите index с индексом этих двух поступающих постов.

IncredibleHat 13.03.2018 14:19

@IncredibleHat Спасибо, чувак, вот решение

Dip 13.03.2018 14:22
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
5
87
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Если вы можете настроить объект формы, чтобы он был более согласованным, если вы добавите идентификатор, а не полагаетесь на индексы. Нравиться:

Select users : <input type = "radio" name = "user_id[skck1][]" />
Select Duration :<input type = "radio" name = "six_months[skck1][]" />

Или, если нет, то используйте этот php-код для сопоставления индексов.

$x = array(1,2,3,4);
$y = array('a','b','c','d');

$results = array();
foreach($x as $k=>$v){
  $results[] = array('x'=>$v, 'y'=>$y[$k]);
}

print_r($results);

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

Ответ принят как подходящий

Используйте то же имя для поля продолжительности, что и duration[], вы сможете получить массив, а затем просто использовать этот массив в дальнейшем.

Другие вопросы по теме