2010-09-04 8 views
1

Je suis déconner avec une application web tornado avec laquelle j'ai besoin d'un peu d'aide. J'ai plusieurs cases à cocher avec le même nom et je voudrais POSTER les valeurs de la sélection.POST multiple checkbox valeur tornade

<input id=DB_BASED_ID name="activity" value=DB_BASED_ID type="checkbox"/> 
<input id=DB_BASED_ID name="activity" value=DB_BASED_ID type="checkbox"/> 
<input id=DB_BASED_ID name="activity" value=DB_BASED_ID type="checkbox"/> 
<input id=DB_BASED_ID name="activity" value=DB_BASED_ID type="checkbox"/> 

Je peux obtenir les valeurs de chacun avec javascript pré-POST, mais je avoir des problèmes à obtenir cette liste sur le côté python (tornade). Je reçois seulement la plus haute valeur sélectionnée.

sur le côté python il ressemble:

...

def post(self): 
    email = self.get_argument("email") 
    activity = self.get_argument("activity") 

Répondre

2

Il est bien de laisser plusieurs balises ont le même nom attribut, mais le id attributs doit être unique - ici, ils ne sont pas (à moins que chacune de ces occurrences du DB_BASED_ID identique soit en quelque sorte destinée à être remplacée par une différente valeur? Mais alors pourquoi ne pas montrer les choses réellement distinct, comme ils apparaissent dans le vrai HTML ?!), rendant ce HTML invalide et sujet à toutes sortes de problèmes. Une fois ce problème résolu, dans ces méthodes de gestion, self.request.arguments['activity'] (si cette clé de chaîne est présente dans le répertoire) sera une liste de valeurs non vides pour toutes les entrées nommées 'activity' (le cas échéant).

+0

merci beaucoup. Chaque identifiant est différent. mon but est d'obtenir une liste d'activités que quelqu'un dans lequel une personne est intéressée. J'espérais passer un tableau d'éléments "vérifiés" à la base de données. donc le html ressemblerait plus à Randonnée Vélo Camping Pêche Je me soucie seulement de la valeur numérique puisque cela correspond au pk de l'activité correspondante – swasheck

+1

@swash, alors le code que je donne dans le 2ème pararaphe fonctionnera, sauf que vous devez faire votre propre filtrage et conversion en entiers, puisque les résultats seront toujours des chaînes. –