Я получил избранный тег с некоторыми опциями в 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>
Один из способов сделать это, первый - массив, второй - объект:
<select name="">
<option value="{'num_sequence':[0,1,2,3]}">Option one</option>
<option value="{'foo':'bar','one':'two'}">Option two</option>
</select>
Отредактировано (через 3 года после ответа), чтобы поместить оба значения в формат JSON (используя JSON.stringify ()
) из-за жалобы на то, что мой контрольный ответ «может запутать новичка-разработчика».
один из вариантов - указать несколько значений через запятую
, например
value ="123,1234"
и на стороне сервера разделяют их
Если ваша цель - записать эту информацию в базу данных, то зачем вам иметь первичное значение и «связанные» значения в атрибуте value
? Почему бы просто не отправить первичное значение в базу данных и позволить реляционной природе базы данных позаботиться обо всем остальном.
Если вам нужно иметь несколько значений в параметрах OPTION
, попробуйте использовать не очень распространенный разделитель:
<OPTION VALUE="1|2010">One</OPTION>
...
или добавьте литерал объекта (формат JSON):
<OPTION VALUE="{'primary':'1','secondary':'2010'}">One</OPTION>
...
Это действительно зависит от того, что вы пытаетесь сделать.
поместите значения для каждой опции, такой как
<SELECT NAME="val">
<OPTION VALUE="1" value="1:2:3:4"> 1-4
<OPTION VALUE="2" value="5:6:7:8"> 5-8
<OPTION VALUE="3" value="9:10:11:12"> 9-12
</SELECT>
, на стороне сервера в случае php, используйте такие функции, как explode [array] = explode ([разделитель], [опубликованное значение]);
$values = explode(':',$_POST['val']
приведенный выше код возвращает массив, содержащий только числа и удаление символа ':'
Дублирование параметров тегов не допускается в HTML. Что вы могли бы сделать, так это VALUE="1,2010"
. Но вам придется анализировать значение на сервере.