Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 4, 2013 16:15:29

artifact
Зарегистрирован: 2013-10-04
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Массив из checkbox формы

Здравствуйте, уважаемые форумчане. Я использую python 2.7.3 и одну из последних версий flask.
Мне потребовалось сгенерировать форму чекбоксов. Форма генерируется циклом на основании данных, полученных из бд, поэтому все выбранные чекбоксы я хотел бы получить в массиве. Попробовал реализовать следующим образом:

<form>
                {% for option in options %}
                    <input type="checkbox" name="options[]" value="{{ option[0] }}"> {{ option[0] }}<br>
                {% endfor %}
                    <input type="submit">
</form>
но ответ получается таким
http://127.0.0.1:5000/response?options[]=val1&options[]=val2
Подскажите, пожалуйста, что я делаю не так и как мне добиться нужного результата.

Отредактировано artifact (Окт. 4, 2013 16:16:05)

Офлайн

#2 Окт. 4, 2013 18:46:43

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Массив из checkbox формы

Что раньше ответа?
Конкретно, что в HTML?
До того, как сабмитить форму, посмотри исходный код формы, что там?
В хроме: правая мышка—-просмотр кода страницы.
Или правая мышка — Проверить элемент.



Офлайн

#3 Окт. 4, 2013 19:16:34

artifact
Зарегистрирован: 2013-10-04
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Массив из checkbox формы

FishHook, такой код

<form>
                
                    <input type="checkbox" name="options[]" value="val1"> val1<br>
                
                    <input type="checkbox" name="options[]" value="val2"> val2<br>
                
                    <input type="submit">
</form>

Офлайн

#4 Окт. 4, 2013 19:23:02

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Массив из checkbox формы

Ну и чего Вы хотите? Ответ адекватен запросу.
Здесь, для каждого Вашего нейма свой валюй

response?options[]=val1&options[]=val2
Какое поведение Вы ожидаете?



Отредактировано FishHook (Окт. 4, 2013 19:24:41)

Офлайн

#5 Окт. 4, 2013 19:29:35

artifact
Зарегистрирован: 2013-10-04
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Массив из checkbox формы

FishHook
Я ожидаю ответ примерно такой формы

response?options=['val1', 'val2']
Но меня устроит любой другой ответ в формате списка или кортежа, чтобы его потом можно было разобрать в цикле, например

Офлайн

#6 Окт. 4, 2013 19:34:05

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Массив из checkbox формы

Вы прям в Гете хотите это увидеть?
нет? Во фласке где то был метод getlist или аналогичный, в любом случае курите мануал уже!



Офлайн

#7 Окт. 4, 2013 19:41:22

artifact
Зарегистрирован: 2013-10-04
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Массив из checkbox формы

FishHook, форму я создаю правильно и иначе массивы не создаются, да?

Офлайн

#8 Окт. 4, 2013 20:11:35

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Массив из checkbox формы

Совершенно не важно, КАК Вы создаёте форму, Если без фласка
интересно как эта форма будет выглядеть в разметке,
вот тут Вы это видите.
Плевать как это получилось.
Вопрос в том, чего Вы собственно, хотели?



Офлайн

#9 Окт. 4, 2013 20:12:03

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Массив из checkbox формы

artifact
name="options[]"
такая фишка работает только в PHP, то есть содается переменная массива и туда складываются значения

в python ты получишь множество значений с одним именем, в разных фреймворках есть API чтобы получить эти значения

например в pyramid
options = request.GET.getall('options[]')

Отредактировано bismigalis (Окт. 4, 2013 20:13:47)

Офлайн

#10 Окт. 4, 2013 20:23:23

artifact
Зарегистрирован: 2013-10-04
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Массив из checkbox формы

Всем большое спасибо, разобрался. Во flask это делается так

options = request.args.getlist('options[]')

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version