[help] traitement de formulaires et recherche de DOC

johanb Messages postés 33 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 19 mai 2006 - 5 avril 2005 à 11:20
cs_frankystadore Messages postés 9 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 2 mai 2005 - 19 avril 2005 à 11:21
Bonjour à tous, je viens de me lancer dans le python et j'i de gros
problèmes avec la syntaxe que je ne connias pas bien.Donc tout d'abord
si quelqu'un à une url ou trouver l'index des syntaxes et leur
explication (une bonne doc en gros, comme l'équivalent de selfHTML ou
nexenPHP)



voici donc mon problème:

je travaille sous Zope (que je découvre aussi) et je veux faire un
formulaire.Ce formulaire est composé d'un ensemble de checkbox à cocher
(une liste de centres d'intérets).Au dessus de cette liste se trouve
une liste déroulante comportant les memes choix.

Le principe est assez simple:l'utilisateur choisi dans la liste
déroulante son 1er centre d'intéret et coche les checkbox pour les
autres centres d'intérets.

J'ai donc fais en sorte que lorsqu'il choisi son 1er centre d'intéret
(dans la liste déroulante), ce même choix dans la liste (checkboxes)
est desactivé (attribut disabled en html) de telle sorte qu'on ne
puisse pas le rechoisir.

Ensuite ce formulaire fais appel à un script python qui instancie des objets (principe de Zope avec les données choises).



Le problème que j'ai rencontré vient de 2facteurs:

- la liste des choix n'est pas fixe (on peut ajouter via un panel d'administration d'autes choix) donc je ne sais pas comment récupérer laliste des choix.

- lorsqu'un choix est verrouillé (disabled) il n'est pas envoyé par le
formulaire et le script Python l'attends (en PHP, par exemple, un
simple isset($variable) dans une condition suffit, mais je ne connais
pas d'équivalent Python).



je chercherais donc le moyen de pouvoir envoyer une liste via un
formulaire (ou envoyer chaque élément séparé) et de récuérer le tout
(en controlant l'existance ou non) pour traitement



Je viens juste de débuter dans le domaine et la documentation en ligne
n'est pas très claire, donc vous m'excuserez si ma uesiton peut
paraitre basique.

En vous remerciant,

3 réponses

johanb Messages postés 33 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 19 mai 2006
5 avril 2005 à 11:47
je pense avoir trouvé une solution, voici le code DTML correespondant (eh oui DTML puisque je suis sous Zope):

choix principal:


<form name="from_choix" action="mon_script">

<select name="choix1" onChange="lock_checkbox()">

<option value="">choisissez</option>

<dtml-in "pages.choix.objectValues('Folder')">

<option value="<dtml-var id>"><dtml-var id></option>

</dtml-in>

</select>



choix secondaires:


<dtml-in "pages.choix.objectValues('Folder')">


" name="choix:list"
onclick="check_choix(this)"><dtml-var id> <dtml-if
title>(<dtml-var title>)</dtml-if>


</dtml-in>

</form>



En html les input/checkbox donnent:

choix_x



donc le formulaire si j'ai bien compris fais appel à "mon_script" en envoyant comme paramètres la liste des choix cochés.

donc je pense que j'approche paut être au but, je dois vérifier
johanb Messages postés 33 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 19 mai 2006
6 avril 2005 à 10:07
Bon, et bien j'ai réussi à régler une partie du problème mais il me reste encore un truc a régler.



Comment fais on en python pour savoir si une propriété est définie?

en effet, je fais un système de sondage et mon script python donneif not(sondage.rep1 in unknown_vars):

if radiobutton==sondage.rep1:

nbr=sondage.resultat_rep1+1

sondage.manage_changeProperties(resultat_rep1=nbr)



if not(sondage.rep2 in unknown_vars):

if radiobutton==sondage.rep2:

nbr=sondage.resultat_rep2+1

sondage.manage_changeProperties(resultat_rep2=nbr)



...

le problème est qu'on m'affiche "global name 'unknown_vars' is not defined"

alors qu'il marche sur d'autres
scripts.En plus le traitement est lourd car lorsqu'il ya plusieurs
posibilité pour le sondage je dois me tapper toutes les lignes.

Si quelqu'un sait comment faire avec une boucle for ou while, qu'il
n'hésite pas à me répondre (bien que j'ai de sérieux doutes, vu que
personne n'a été capable de m'aider pour les questions précédentes)
cs_frankystadore Messages postés 9 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 2 mai 2005 1
19 avril 2005 à 11:21
je ne peux malheureusement t'aider de suite, mais peux-tu m'envoyer ton code afin que je jette un coup d'oeil sur Python???

Par la même occasion, saurais-tu comment faire un Select All d'une liste de fichier???

C'est bête comme question mais ça m'ennuie un peu comme problème

Merci d'avance pour ton aide, et n'oublies pas de m'envoyer ton script Python.

Frankystadore
Rejoignez-nous