У меня есть тег выбора с некоторыми параметрами в HTML-форме:
(данные будут собираться и обрабатываться с помощью PHP)
Тестирование:
<select name="Testing">
<option value="1"> One
<option value="2"> Two
<option value="3"> Three
</select>
Может ли опция нести несколько значений, например, когда пользователь выбирает «Один», тогда несколько других значений, связанных с этой опцией, будут записаны в базу данных.
Как мне спроектировать select
тег так, чтобы каждая из опций могла содержать одно, а не одно значение, например:
<select name="Testing">
<option value="1" value="2010"> One
<option value="2" value="2122"> Two
<option value="3" value="0"> Three
</select>
Ответы:
Один из способов сделать это, сначала массив, второй объект:
Отредактировано (через 3 года после ответа) для помещения обоих значений в формат JSON (с использованием
JSON.stringify()
) из-за жалобы на то, что мой контрольный ответ «может запутать новичка-разработчика».источник
Мне действительно было интересно это сегодня, и я добился этого с помощью функции php explode, например:
HTML-форма (в файле, который я назвал doublevalue.php:
Действие PHP (в файле, который я назвал doublevalue_action.php)
Как вы можете видеть в первом фрагменте кода, мы создаем стандартное поле выбора HTML с двумя вариантами. Каждая опция имеет 1 значение, которое имеет разделитель (в данном случае «|») для разделения значений (в данном случае модель и цвет).
На странице действия я превращаю результаты в массив, а затем вызываю каждый из них. Как видите, я разделил и пометил их, чтобы вы могли видеть эффект, который это вызывает.
Я надеюсь, что это поможет кому-то :)
источник
возможно иметь несколько значений в опции выбора, как показано ниже.
вы можете получить выбранное значение при изменении события с помощью jquery, как показано ниже.
Вы можете найти более подробную информацию по этой ССЫЛКЕ
источник
один из вариантов - указать несколько значений через запятую
лайк
а на стороне сервера разделите их
источник
Когда мне нужно это сделать, я делаю другие значения data-values, а затем использую js, чтобы назначить их скрытому вводу.
источник
Если ваша цель - записать эту информацию в базу данных, тогда зачем вам иметь первичное значение и «связанные» значения в
value
атрибуте? Почему бы просто не отправить первичное значение в базу данных, а обо всем остальном позаботится реляционная природа базы данных.Если вам нужно иметь несколько значений в
OPTION
s, попробуйте использовать разделитель, который не очень распространен:...
или добавьте литерал объекта (формат JSON):
...
Это действительно зависит от того, что вы пытаетесь сделать.
источник
введите значения для каждой опции, например
на стороне сервера в случае php используйте такие функции, как explode [array] = explode ([разделитель], [опубликованное значение]);
приведенный выше код возвращает массив, в котором удаляются только числа и ':'
источник
Я сделал это с помощью атрибутов данных. Намного чище, чем другие методы взрыва и т. Д.
HTML
JS
источник
А как насчет атрибутов данных html? Это самый простой способ. Ссылка из w3school
В твоем случае
источник
Используйте разделитель для разделения значений.
источник
В HTML
Для JS
ИЛИ ДЛЯ PHP
источник
В HTML не допускаются повторяющиеся параметры тега. Что вы могли сделать, так это
VALUE="1,2010"
. Но вам нужно будет проанализировать значение на сервере.источник
Вместо того, чтобы хранить параметры на стороне клиента, другой способ сделать это - сохранить параметры как элементы подмассива ассоциативного / индексированного массива на стороне сервера. Значения тега select тогда будут просто содержать ключи, используемые для разыменования подмассивов.
Вот пример кода. Это написано на PHP, поскольку OP упоминает PHP, но его можно адаптировать к любому языку на стороне сервера, который вы используете:
PHP:
источник
Это может быть полезно, а может и не быть полезным для других, но для моего конкретного случая использования я просто хотел, чтобы дополнительные параметры передавались обратно из формы при выборе параметра - эти параметры имели одинаковые значения для всех параметров, поэтому ... мое решение было включить скрытые поля ввода в форму с помощью select, например:
Может быть, очевидно ... более очевидно после того, как вы это увидите.
источник
вы можете использовать несколько атрибутов
источник