Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

flask handle form with radio buttons

Tags:

My index.html looks like this

<form name="myForm" action="" method="post" onsubmit=""> <p> <input type="radio" name="options" id="option1"> Option1 <br> <input type="radio" name="options" id="option2"> Option2 <br> <input type="radio" name="options" id="option3"> Option3 <br> </p> <p><input type=submit value=Next></p> </form> 

I need to get the selected button. But since they all have the same name I cannot do it by writing request.form['option']. If I make their names different, users can make multiple selections.

Isn't there a way to get a button's state by it's id ? If no, what's the simplest way to handle this form ?

like image 995
theluckyemil Avatar asked Jul 27 '15 20:07

theluckyemil


People also ask

What is a RadioField?

The Radio field enables your users to select a value from a predefined set of choices that are displayed as radio buttons.

How do I get the value of a radio button in Python?

Build A Paint Program With TKinter and Python The radiobutton has only two values, either True or False. If we want to get the output to check which option the user has selected, then we can use the get() method. It returns the object that is defined as the variable.


2 Answers

You should add the value attribute to each of your input fields:

<input type="radio" name="options" id="option1" value="option1"> Option1 </input><br> <input type="radio" name="options" id="option2" value="option2"> Option2 </input><br> <input type="radio" name="options" id="option3" value="option3"> Option3 </input><br> 

and in your flask route you can read the selected option:

option = request.form['options'] 

and you'll get the value of the selected radio button.

like image 69
doru Avatar answered Sep 18 '22 17:09

doru


or an alternative and simple method is to use

getlist()

<input type="radio" name="options" id="option1" value="option1"> Option1 </input<br> <input type="radio" name="options" id="option2" value="option2"> Option2 </input<br> <input type="radio" name="options" id="option3" value="option3"> Option3 </input<br> 

then to get value selected, in your flask file:

option = request.form.getlist('options') 

nb: you can select more or one value it will be saved in a list

like image 34
fredcode Avatar answered Sep 20 '22 17:09

fredcode