Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to process multiple checkboxes with a single server-side variable? (HTML form; python)

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 server-side 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 -- it just 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 every checkbox. I don't want to have to change the Python code if I alter the HTML.

like image 419
clifgray Avatar asked Nov 06 '25 00:11

clifgray


1 Answers

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')
like image 115
Daniel Roseman Avatar answered Nov 07 '25 14:11

Daniel Roseman



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!