IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

[langage] Passage de parametres d'une page à l'autre


Sujet :

Langage Perl

  1. #21
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    Arf ! en fait me suis trompé, je voulais parler du popup_menu, la scrolling_list permet d'avoir des choix multiples.

    Sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    print "<table><tr><td><table border=1><tr><td>Fécondation souhaitées</td></tr><tr><td align =center>Nombre de fécondations à faire : "."\n"; 
    print "<form name='nb_fecond' action='' method='post' enctype='multipart/form-data'>"."\n"; 
    print $q->textfield(-name=>'text_fecond', default=>$text_fecond, size=>1)."\n"; 
    print $q->submit(-name=>"submit_fecond", -value=>'OK')."\n"; 
    print "</form>"."\n"; 
    print "</td></tr></table></td></tr><tr><td align=center>"."\n"; 
     
    my $s_fecond = $q->param('submit_fecond');
     
    if ($s_fecond ne '') {
    	my @nature_test = 0..5;	
    	my %texte_nature = ('0' => 'nature', '1' => 'oiseau', '2' => 'foret', '3' => 'riviere', '4' => 'terre', '5' => 'pluie');
    print "<table border=1><tr><td align=center>&nbsp;Priorité&nbsp;</td><td align=center>&nbsp;Croisement&nbsp;</td</tr>"."\n"; 
    	print "<form name='ch_fecond' action='' method='post' enctype='multipart/form-data'>"."\n"; 
    	foreach my $x (1..$text_fecond) {
    		print $q->popup_menu(-name => "nature_test$x",
    								 -values => \@nature_test,
    								 -labels => \%texte_nature);
    	}
    	print $q->submit(-name=>"submit_chfecond", -value=>'OK')."\n"; 
    	print "</form>"."\n"; 
    }
    est-ce un truc comme ca que tu veux ?


    @+
    Mr6

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 171
    Points : 70
    Points
    70
    Par défaut
    Ca y ressemble.

    Maintenant, j'arrive bien a recuperer la valeur choisie dans ma liste.
    J'y arrive avec mon tableau, comme avec le tien.

    Si je choisi Riviere, je recup '3'.

    En plus, ca serait bien si j'avais :
    Au départ, je rentre 1 dans text_fecond, je choisi Riviere.
    Je me rend compte que finalement jai besoin de riviere et pluie, donc je vais mettre 2 dans text_fecond, je clique sur OK. La page va se recharger. A ce moment la, je voudrais que dans ma 1ere liste, Riviere soit deja selectionné.
    Tu comprend ce que je veux dire?

  3. #23
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    Ca va te le faire ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    print "<table><tr><td><table border=1><tr><td>Fécondation souhaitées</td></tr><tr><td align =center>Nombre de fécondations à faire : "."\n"; 
    print "<form name='nb_fecond' action='' method='post' enctype='multipart/form-data'>"."\n"; 
    print $q->textfield(-name=>'text_fecond', default=>$text_fecond, size=>1)."\n"; 
    print $q->submit(-name=>"submit_fecond", -value=>'OK')."\n"; 
    print "</td></tr></table></td></tr><tr><td align=center>"."\n"; 
     
    my $s_fecond = $q->param('submit_fecond');
     
    if ($s_fecond ne '') {
    	my @nature_test = 0..5;	
    	my %texte_nature = ('0' => 'nature', '1' => 'oiseau', '2' => 'foret', '3' => 'riviere', '4' => 'terre', '5' => 'pluie');
    	print "<table border=1><tr><td align=center>&nbsp;Priorité&nbsp;</td><td align=center>&nbsp;Croisement&nbsp;</td</tr>"."\n"; 
    	foreach my $x (1..$text_fecond) {
    		my $defaut = $q->param("nature_test$x");
    		print $q->popup_menu(-name => "nature_test$x",
    								 -values => \@nature_test,
    								 -default => "$defaut",
    								 -labels => \%texte_nature);
    	}
    	print $q->submit(-name=>"submit_chfecond", -value=>'OK')."\n"; 
    }
     
    print "</form>"."\n";
    @+
    Mr6

  4. #24
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 171
    Points : 70
    Points
    70
    Par défaut
    Euh...

    Ca marche pas chez moi...

    Mais surement parce quil y a un petit probleme. Si je rentre 1 ds ta zone de texte, je valide, la page se recharge, il faut que je rentre a nouveau 1 et revalider pour voir apparaitre la liste.
    Apres, si je choisi riviere, que je tape 2, c la meme chose, il faut que je le fasse 2 fois pour avoir 2 listes, donc je pense que la valeur est perdue entre temps.

  5. #25
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    bah quand tu changes le numéro, tu cliques bien sur le OK qui est à côté, pas sur le OK qui est à côté des listes ? ce 2ème bouton n'est pas géré dans l'exemple que je viens de te passer ! mais chez moi ca marche très bien, je mets 3, je valide, je sélectionne (par exemple) terre, pluie, oiseau, je mets 6, je valide (tjrs avec le 1er bouton) et je vois apparaitre 6 listes au lieu de 3, et les 3 premières ont gardé leur valeur !

    edit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    my %texte_nature = ('0' => 'nature', '1' => 'oiseau', '2' => 'foret', '3' => 'riviere', '4' => 'terre', '5' => 'pluie');
     
    print "<table><tr><td><table border=1><tr><td>Fécondation souhaitées</td></tr><tr><td align =center>Nombre de fécondations à faire : "."\n"; 
    print "<form name='nb_fecond' action='' method='post' enctype='multipart/form-data'>"."\n"; 
    print $q->textfield(-name=>'text_fecond', default=>$text_fecond, size=>1)."\n"; 
    print $q->submit(-name=>"submit_fecond", -value=>'OK')."\n"; 
    print "</td></tr></table></td></tr><tr><td align=center>"."\n"; 
     
    my $s_fecond = $q->param('submit_fecond');
    my $s_chfecond = $q->param('submit_chfecond');
    $s_fecond = 'OK' if $s_chfecond ne '';
    if ($s_fecond ne '') {
    	my @nature_test = 0..5;	
    	print "<table border=1><tr><td align=center>&nbsp;Priorité&nbsp;</td><td align=center>&nbsp;Croisement&nbsp;</td</tr>"."\n"; 
    	foreach my $x (1..$text_fecond) {
    		my $defaut = $q->param("nature_test$x");
    		print $q->popup_menu(-name => "nature_test$x",
    								 -values => \@nature_test,
    								 -default => "$defaut",
    								 -labels => \%texte_nature);
    	}
    	print $q->submit(-name=>"submit_chfecond", -value=>'OK')."\n"; 
    }
    if ($s_chfecond ne '') {
    	print "<tr><td colspan=2>Vous avez sélectionné :</td></tr>";
    	foreach my $x (1..$text_fecond) {
    		my $defaut = $q->param("nature_test$x");
    		print "<tr><td>$defaut</td><td>$texte_nature{$defaut}</td></tr>";
    	}
    }
     
    print "</form>"."\n";
    Avec celui-là, tu gères le 2ème bouton pour afficher les résultats. Après tu adaptes à ce dont tu as besoin

    @+
    Mr6

  6. #26
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 171
    Points : 70
    Points
    70
    Par défaut
    Oui, je clique bien avec le 1er bouton OK, pas le 2eme.

    Peut etre que ca viens du reste du code de la page, qui interfere, je ne lai pas collé dans une page vierge.

  7. #27
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    alors retente avec juste ce ke je t'ai mis pour commencer, ca te permettra de réellement tester ce bout de code, ed voir comment il marche et tu pourras réintégrer le reste autour

    @+
    Mr6

  8. #28
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 171
    Points : 70
    Points
    70
    Par défaut
    Alors...

    Ca marche bien tant que je reste de page.

    J'ai mis un bouton Valider pour passer a une autre page ou je pensais traiter toutes les informations.

    J'ai mis ton petit bout de code qui permet d'avoir la liste des parametres et leur valeur, et par exemple j'ai ca qui s'affiche grace a ce code:
    nature_test1 : 12
    nature_test2 : 3
    Donc j'ai voulu mettre les données issues des listes dans un tableau donc je faisais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    my @nature;
    for (my $x=1; $x<=$text_fecond; $x++) {
     $nature[$x-1] = $q->param("nature_test$x"); 
    }
    Et quand je faisais un affichage, il n'y avait rien alors que il aurait du y avoir :
    $nature[0]=12; $nature[1]=3
    Donc j'ai essayé de faire ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print  $q->param("nature_test1");
    et rien ne s'affiche. Je pensais retrouver la valeur 12.

    Comment ca se fait?

  9. #29
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    Citation Envoyé par linou
    Donc j'ai voulu mettre les données issues des listes dans un tableau donc je faisais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    my @nature;
    for (my $x=1; $x<=$text_fecond; $x++) {
     $nature[$x-1] = $q->param("nature_test$x"); 
    }
    Et quand je faisais un affichage, il n'y avait rien alors que il aurait du y avoir :
    $nature[0]=12; $nature[1]=3
    Alors, dans le même style, en construisant ton tableau, si tu fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    my @nature;
    foreach my $x (0..$text_fecond) {
        $nature[$x] = $q->param("nature_test$x");
        print "nature_test$x => $nature[$x]<br>";
    }
    Ca donne koi ? normalement, ca devrait pas poser de souci, ou alors il y a qqch tu as oublié de dire par rapport à ton code

    @+
    Mr6

  10. #30
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 171
    Points : 70
    Points
    70
    Par défaut
    Les parametres passent partiellement. Je m'explique :
    si je tape par exemple 2 ds la zone de texte, je renseigne mes listes deroulantes, je saisie 3, je renseigne, je valide, les 2 resultats des 2 premieres listes passent bien mais pas celui de la derniere liste.

    Pour que tous les parametres passent d'une page a l'autre, il faut que je clique sur OK avant de cliquer sur valider.

    Je ne vois pas quelle ligne je devrais ajouter dans le formulaire du botuon valid pour pouvoir enregistrer les donnees des dernieres listes ajoutees...

  11. #31
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    Je crois avoir compris. Ton bouton valid est dans un formulaire autre que celui du bouton OK je pense. Donc nettoie un peu pour n'avoir qu'un seul formulaire, c'est ce que j'ai fait ds l'exemple que je t'ai passé. Ensuite, tu peux laisser le tout ds le même script, il te suffit de tester quel bouton submit a été validé (cf exemple) et de faire un if pour renvoyer la page que tu veux en fonction de ca

    @+
    Mr6
    PS : la suite demain si tu as d'autres soucis

  12. #32
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 171
    Points : 70
    Points
    70
    Par défaut


    Ca y est, tout marche correctement.
    Ca venait bien du fait que j'avais plusieurs formulaire sur la meme page.

    Finalement, je fais toutes mes requetes sur la meme page, sans changer.

    Je n'avais pas compris l'intéret des tests sur $s_fecond et sur $sch_fecond, mais ca y est, tout est bien gérer.

    Je te remercie beaucoup, je ne m'en serais pas sortie sans toi!
    Je ne savais pas gérer tous ces boutons, méthode a retenir.

    Je vais continuer mon chemin, mais je serais surement de passage assez rapidement pour poster un nouveau message...


  13. #33
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 867
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 867
    Points : 4 873
    Points
    4 873
    Par défaut
    Je crois en tout cas que tu as gagné le thread le plus long du forum Perl !
    Cool que ça marche.

    @++

  14. #34
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 171
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par GLDavid
    Je crois en tout cas que tu as gagné le thread le plus long du forum Perl !
    Non...
    Regarde dans les 20 précédents, yen a deja 2 qui sont plus longs!

    Mais j'assume, je le vis bien!

  15. #35
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    Citation Envoyé par linou
    De rien. Ca n'a pas d'intérêt de savoir des trucs si c pas pour en faire profiter les autres
    Un dernier conseil : gérer tout dans un seul script, c'est bien, mais quand tu dois relire 3000-4000 lignes pour faire une modif à la con, c'est tout de suite moins drôle, sauf si tu es SM. Donc c comme tout, il faut en user, mais pas en abuser


    @+
    Mr6
    *qui cherche du FMA (en manque !!!!!!)*

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [MySQL] passage de parametre d'une page à une autre
    Par amesnaou dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 06/05/2009, 11h51
  2. Réponses: 8
    Dernier message: 16/08/2007, 15h46
  3. [Cookies] passage de variable d'une page a l'autre
    Par BernardT dans le forum Langage
    Réponses: 1
    Dernier message: 15/11/2005, 01h50
  4. [langage] Passage de paramètres dans une fonction
    Par And_the_problem_is dans le forum Langage
    Réponses: 11
    Dernier message: 28/06/2004, 08h20
  5. [langage] passage de paramètres à une fonction
    Par BARBIER dans le forum Langage
    Réponses: 4
    Dernier message: 07/05/2004, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo