Если у меня есть два ввода текста типа с одинаковым именем, например:
<input type="text" name="task" id="task1" value="begin">
<input type="text" name="task" id="task2" value="end">
Когда я отправляю форму, task
автоматически отправляется в виде массива (task[0]='begin'
, task[1]='end'
). Это очень полезно по многим причинам, например, мне не нужно беспокоиться о сериализации результата, я могу использовать сортировку для повторной сортировки, и когда я отправляю ее, она уже находится в правильном порядке.
Но если я хочу использовать переключатели, мне уже нужно использовать несколько входов с тем же именем.
Есть ли способ сохранить эту функциональность с помощью переключателей?
Например:
<input type="text" name="task" id="task1" value="begin">
<input type="radio" name="time" id="time11" value="early" checked="checked">
<input type="radio" name="time" id="time12" value="noon">
<input type="radio" name="time" id="time13" value="late">
<input type="text" name="task" id="task2" value="end">
<input type="radio" name="time" id="time21" value="early">
<input type="radio" name="time" id="time22" value="noon" checked="checked">
<input type="radio" name="time" id="time23" value="late">
Я хочу, чтобы при отправке я получал time[0]='early'
и time[1]='noon'
[
и]
в именах данных формы. 24.07.2012time[start]
. Таким образом, код все равно будет работать, даже если он не будет доступен как собственный массив. 24.07.2012task[0]
сtime[0]
24.07.2012name="time[0]"
иname="time[1]"
. Как я уже сказал в комментарии выше, вы можете установить ключ на любую выбранную вами строку, включая 0 или 1. 24.07.2012name="task[0]"
иname="task[1]"
и для ввода текста, чтобы они не рассинхронизировались. 24.07.2012name="foo[0]"
иname="foo[1]"
, тогда PHP предоставит вам массив результатов публикации, содержащий вложенный массив с именемfoo
, но все остальное даст вам массив результатов публикации, содержащийfoo[0]
иfoo[1]
. Вы не получаете специальный массивfoo
(это то, что задает вопрос). 24.07.2012