Флажки HTML Form не отправляются как я ожидаю - PullRequest
3 голосов
/ 17 марта 2012

[Решение: измените мои имена на массивы, конкатенируя "[]" до конца. Кроме того, измените мои идентификаторы на уникальные значения в соответствии со спецификациями HTML]

Я создаю форму, которая имеет матрицу (html-таблицу) флажков с одним пользователем на строку и пользовательскими правами на столбцы. Каждая ячейка имеет флажок. Каждый флажок в строке имеет «имя», установленное на адрес электронной почты пользователя (уникальный). Значения флажков являются идентификаторами конкретного разрешения. когда я нажимаю кнопку отправки и проверяю параметры, возвращаемые из HTTP POST, устанавливается только самый правый флажок для строк, для которых установлено несколько флажков.

Например, есть три флажка, первый и второй отмечены, третий не отмечен. Я получаю только имя = идентификатор этого второго флажка.

Я создаю форму в Rails, хотя я не думаю, что это действительно актуально. Кроме того, браузер, который обеспечивает такое поведение, - это Chrome, Iceweasel и Epiphany ... Так что я думаю, что это моя форма.

Выдержка из моей формы:

<tr>
                <td>UserOne</td>
                <td>one@oreo.com</td>
                <td>
                        <input checked="checked" id="one_oreo.com" name="one@oreo.com" type="checkbox" value="1" />
                </td>
                <td>
                        <input id="one_oreo.com" name="one@oreo.com" type="checkbox" value="2" />
                </td>
                <td>
                        <input id="one_oreo.com" name="one@oreo.com" type="checkbox" value="3" />
                </td>
                <td>
                        <input checked="checked" id="one_oreo.com" name="one@oreo.com" type="checkbox" value="4" />
                </td>
                <td>
                        <input id="one_oreo.com" name="one@oreo.com" type="checkbox" value="5" />
                </td>
                <td>
                        <input id="one_oreo.com" name="one@oreo.com" type="checkbox" value="6" />
                </td>
            </tr>

Ответы [ 3 ]

5 голосов
/ 17 марта 2012

Вы установили name = "" на всех них на одно и то же, поэтому оно заменит любое значение, которое было изначально там, когда вы отметите несколько флажков.

Либо дайте каждому флажку свое имя, например, name="one@oreo.com_check_1" или превратить их в массив, используя name="one@oreo.com[]". Затем все значения, переданные ему, будут сохранены в массиве, который можно затем обработать после отправки формы!

0 голосов
/ 17 марта 2012

Нельзя присвоить имени параметру одинаковое значение для каждой строки. Флажки должны быть уникальными или хотя бы массивом. Радиокнопки - это то место, где вы можете использовать одно и то же имя.

0 голосов
/ 17 марта 2012

Названия ваших флажков должны быть уникальными.Я предлагаю puttitempeh идентификатор пользователя и идентификатор разрешения в имени.Также вы должны изменить Ida соответственно.Идентификаторы не влияют на отправку формы, но неправильно иметь несколько элементов с одинаковым идентификатором в HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...