элемент ввода формы с квадратной скобкой - PullRequest
0 голосов
/ 07 сентября 2011

В моей форме есть элемент с квадратной скобкой:

<input name="bodyIDList[]" id="bodyIDList" value="">

Когда я передаю эту страницу ColdFusion, как это обрабатывается как переменная формы?Как список или массив?

Ответы [ 2 ]

5 голосов
/ 08 сентября 2011

Не уверен, почему вы задаете этот вопрос - буквально несколько секунд, чтобы создать тест и выяснить для себя!

Код для тестирования это очень просто:

<cfoutput>
    <form action="#CGI.SCRIPT_NAME#" method="post">
        <input name="bodyIDList[]" id="bodyIDList" value="">
        <button type="submit">go</button>
    </form>
</cfoutput>

<cfdump var=#Form# />

Запустите, нажмите go, посмотрите на дамп.

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

Если вы запускаете этот код в Adobe ColdFusion 9(или любая другая версия CF) вы получите строковую переменную с именем bodyIDList[] - то есть Form['bodyIDList[]'] - с одним значением.

Если у вас было несколько из этих полей, вы все равно получите строку ссписок, разделенный запятыми.

Поскольку он содержит скобки в имени переменной, получить доступ к этому полю с помощью точечной нотации невозможно.

Все вышеперечисленное также применимо к последним Откройте BlueDragon .

Однако, если вы используете Railo , вы получите другое поведение (скопированное из PHP), которое вместо этого даст вам переменную с именем bodyIDList - т.е.Форма ['bodyIDList'] без скобок - которая содержит массив

Если бы у вас было несколько таких полей, вы бы получили один массив с несколькими элементами.

Тамв настоящее время нет администратораОпция конфигурации, чтобы сделать Railo совместимым с ACF на этом, так что:
Если вы пишете код CFML между двигателями, не используйте имена полей формы в скобках.
(ну,если вы не осознаете и не желаете разбираться с этими различиями).

1 голос
/ 07 сентября 2011

Элемент будет указан индивидуально, например, как bodyIDList []. Я только что проверил это на одной из моих коробок CF9.

Теперь, если у вас есть несколько полей с одним и тем же именем, оно будет отображаться в виде списка в области видимости.

...