2016-04-17 4 views
0

Ich mache eine Webseite in der Flasche, auf der Benutzer zwischen verschiedenen Optionen wählen können. Abhängig von diesen Optionen möchte ich ihnen auf der nächsten Seite ihre gewählten Optionen zeigen. Mein HTML-Code:Wie kann ich prüfen, ob einige Kontrollkästchen in HTML aktiviert sind?

<input type="checkbox" name="name1">name1<br> 
<input type="checkbox" name="name2">name2<br> 
<input type="checkbox" name="name3">name3<br> 

Mein Python-Code:

if checkbox 1 is checked: 
    do something 
if checkbox 2 is checked: 
    do something different 
if checkbox 3 is checked: 
    do another something different 

Ich kann nicht finden, wie diese if-Anweisungen zu bilden. Ich habe etwas gefunden mit:

.getvalue 

Aber dann habe ich einen Fehler bekommen. Mit Radio-Buttons kann ich es zur Arbeit bringen. Als ich sie alle den gleichen Namen und geben ihnen verschiedene Werte mit:

option = request.form['name'] 

Allerdings bedeutet dies auch nicht mit Checkboxen arbeiten, da dann merkt es nur die letzte Option, aber ich will sie alle.

Antwort

2

Jedes Kontrollkästchen ist eindeutig und wird daher im Formular eindeutig benannt.

Die Werte selbst können über das request.form Wörterbuch mit dem Namen aus dem Formular als Schlüssel abgerufen werden. Für Ihr Formular haben die Kontrollkästchen den Namen name1, name2 und name3. Beachten Sie jedoch, dass sie nur verfügbar sind, wenn sie im Formular überprüft wurden. Andernfalls werden ihre Werte nicht auf dem Server veröffentlicht.

So in Ihrer View-Funktion können Sie sie wie folgt zugreifen:

name1 = request.form.get('name1') 
if name1: 
    do_something(name1) 

name2 = request.form.get('name2') 
if name2: 
    do_something(name2) 

name3 = request.form.get('name3') 
if name3: 
    do_something(name3) 

Dies verwendet get() die Nachschlag in Form Wörterbuch auszuführen. Wenn der Schlüssel im Wörterbuch vorhanden ist, wird der Wert zurückgegeben. Wenn der Schlüssel nicht im Wörterbuch ist, wird der Wert None zurückgegeben.

Wie @ Kevin Guan schlug dies kann in einer for-Schleife gehandhabt werden:

for checkbox in 'name1', 'name2', 'name3': 
    value = request.form.get(checkbox): 
    if value: 
     do_something(value) 
+1

Vorschlag: Setzen Sie 'name1' und' name2' und 'name3' in eine Liste und verwenden' for'-Schleife anstelle dieser drei 'if'-Anweisungen. –

+0

@KevinGuan: guter Vorschlag, danke. – mhawke

Verwandte Themen