I have the following HTML code:
<form method="post"> <h5>Sports you play:</h5> <input type="checkbox" name="sports_played" value="basketball"> basketball<br> <input type="checkbox" name="sports_played" value="football"> football<br> <input type="checkbox" name="sports_played" value="baseball"> baseball<br> <input type="checkbox" name="sports_played" value="soccer"> tennis<br> <input type="checkbox" name="sports_played" value="mma"> MMA<br> <input type="checkbox" name="sports_played" value="hockey"> hockey<br> <br> <input class="btn" type="submit"> </form>
And then ideally I would like to have the following python serverside code:
class MyHandler(ParentHandler): def post(self): sports_played = self.request.get('sports_played') #sports_played is a list or array of all the selected checkboxes that I can iterate through
I tried doing this by making the HTML sports_played name and array, sports_played[], but that didn’t do anything and right now it just always returns the first selected item.
Is this possible? Really I just don’t want to have to do a self.request.get(‘HTML_item’) for each and every checkbox incase I need to alter the HTML I don’t want to have to change the python.
Thanks!
Advertisement
Answer
The answer is shown in the webapp2 docs for the request object:
self.request.get('sports_played', allow_multiple=True)
Alternatively you can use
self.request.POST.getall('sports_played')