Найти - Пользователи
Полная версия: Массив из checkbox формы
Начало » Web » Массив из checkbox формы
1
artifact
Здравствуйте, уважаемые форумчане. Я использую 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
Подскажите, пожалуйста, что я делаю не так и как мне добиться нужного результата.
FishHook
Что раньше ответа?
Конкретно, что в HTML?
До того, как сабмитить форму, посмотри исходный код формы, что там?
В хроме: правая мышка—-просмотр кода страницы.
Или правая мышка — Проверить элемент.
artifact
FishHook, такой код
<form>
                
                    <input type="checkbox" name="options[]" value="val1"> val1<br>
                
                    <input type="checkbox" name="options[]" value="val2"> val2<br>
                
                    <input type="submit">
</form>
FishHook
Ну и чего Вы хотите? Ответ адекватен запросу.
Здесь, для каждого Вашего нейма свой валюй
response?options[]=val1&options[]=val2
Какое поведение Вы ожидаете?
artifact
FishHook
Я ожидаю ответ примерно такой формы
response?options=['val1', 'val2']
Но меня устроит любой другой ответ в формате списка или кортежа, чтобы его потом можно было разобрать в цикле, например
FishHook
Вы прям в Гете хотите это увидеть?
нет? Во фласке где то был метод getlist или аналогичный, в любом случае курите мануал уже!
artifact
FishHook, форму я создаю правильно и иначе массивы не создаются, да?
FishHook
Совершенно не важно, КАК Вы создаёте форму, Если без фласка
интересно как эта форма будет выглядеть в разметке,
вот тут Вы это видите.
Плевать как это получилось.
Вопрос в том, чего Вы собственно, хотели?
bismigalis
artifact
name="options[]"
такая фишка работает только в PHP, то есть содается переменная массива и туда складываются значения

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

например в pyramid
options = request.GET.getall('options[]')
artifact
Всем большое спасибо, разобрался. Во flask это делается так
options = request.args.getlist('options[]')
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB