Skip to content
Advertisement

Handle Multiple Checkboxes with a Single Serverside Variable

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')
User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement