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 :

Probleme d'incrementation


Sujet :

Langage Perl

  1. #1
    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 Probleme d'incrementation
    Bonjour a tous,

    J'ai un probleme sur un script :
    Je fais une requete sur une base Oracle, qui me retourne 2 enregistrements au depart.
    Je veux pouvoir en ajouter donc j'ai mis un bouton (add_test) sur mon formulaire. Lorsque je cliq dessus, je veux pouvoir ajouter une ligne.

    Mon probleme, c'est que j'arrive a passer a 3 lignes, mais pas au dela...
    Voila mon code, un peu simplfié :
    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
      my $defaut_test = Execution de la requete; -->retourne 2 enreg.
      my $nb_test_req = $#$defaut_test;  --> $nb_test_req = 1
      my $nb_test = $q->param('nb_test');
     
      my $add_test = $q->param('add_test');
     
      if ($nb_test eq '')
      {
        $nb_test = $nb_test_req;
      }
     
      if ($add_test ne '')
      {  
        $nb_test+= $nb_test;
      }
      print $q->hidden(-name=>'nb_test', -default=>[$nb_test]);
     
     foreach my $x (0..$nb_test)
      {
        print "test : $x<br>";
      }
    Résultat au 1er passage, sans clic sur le bouton :
    test : 0
    test : 1
    Et au 2eme passage :
    test : 0
    test : 1
    test : 2
    Au 3eme passage, je voudrais avoir :
    test : 0
    test : 1
    test : 2
    test : 3
    mais j'ai toujours :
    test : 0
    test : 1
    test : 2
    Est ce que quelqu un voit d'ou peut venir le probleme?

    Merci

  2. #2
    pec
    pec est déconnecté
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    salut

    est ce que tu a essayer de mettre $#defaut_test au lieu de $#$defaut_test a la deuxieme ligne de ton code.

  3. #3
    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
    Non, si je ne mets que $#, je n'ai plus aucune ligne.

    Et le nombre de lignes retourné n'intervient que lors du 1er passage, donc aucune incidence sur l'incrementation de $nb_test, si ce n'est sur le point de depart

  4. #4
    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
    Visiblement, il y a un probleme au niveau du hidden.
    En effet, si on remplace hidden par textfield, on se rend bien compte que la valuer reste a 1.

    Par contre, si on met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      print "<INPUT TYPE=hidden NAME=nb_test VALUE=$nb_test>";
    Il y a bien une incrementation correcte alors que si on met:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print $q->hidden(-name=>'nb_test', -value=>$nb_test);
    ca ne marche pas ...

    D'ou cela peut il venir? J'y ai deja passé bcp bcp de temps dessus, mais je ne vois pas l'ombre d'une reponse

    Donc si quelqu'un voit :

  5. #5
    vic
    vic est déconnecté
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2002
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 431
    Points : 498
    Points
    498
    Par défaut
    Tu fais au lieu de Il n'aime pas quand $nb_test > 1 je suppose.

  6. #6
    Membre actif
    Inscrit en
    Février 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 167
    Points : 203
    Points
    203
    Par défaut
    Citation Envoyé par pec
    tu a essayer de mettre $#defaut_test au lieu de $#$defaut_test a la deuxieme ligne de ton code.
    C'est pas plutôt non ?

    N

  7. #7
    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 vic
    Tu fais au lieu de Il n'aime pas quand $nb_test > 1 je suppose.
    Non, c'est pas ca, mais il y a bien une erreur, c'est :
    Citation Envoyé par nematoad
    pec a écrit:
    tu a essayer de mettre $#defaut_test au lieu de $#$defaut_test a la deuxieme ligne de ton code.


    C'est pas plutôt Code:
    $#{$defaut_test}
    non ?
    Que je mette $#$defaut_test ou $#{$defaut_test}, apparement ca marche pareil.

    Ce qui me fais dire que c'est le hidden qui pose un probleme, cest que si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    print "$nb_test<br>";
    print $q->hidden(-name=>'nb_test', -value=>$nb_test);
    print "$nb_test<br>";
    Au 1er passage, $nb_test=1 et au niveau affichage, j'ai bien un "1".
    et lorsque je regarde le code source, j'ai
    <INPUT TYPE="hidden" NAME="nb_test" VALUE="1">
    .

    Au 2eme passage, je recupere la valeur de $nb_test, et j'ajoute 1, donc je dois avoir $nb_test=2.
    A l'affichage, avant et apres le champ en hidden, j'ai bien l'affichage de "2".
    Par contre, au niveau du code source, j'ai toujours :
    <INPUT TYPE="hidden" NAME="nb_test" VALUE="1">
    alors que je devrais avoir
    <INPUT TYPE="hidden" NAME="nb_test" VALUE="2">
    Et en remplacant ma ligne
    print $q->hidden(-name=>"nb_test", -value=>$nb_test);
    par
    print "<INPUT TYPE=hidden NAME=nb_test VALUE=$nb_test>";
    Le probleme est resolu... Je ne vois vraiment pas ce que ca change, mais ca marche!...

    Alors vous allez me demander pourquoi je ne met pas tout simplement un petit tag "Résolu" et je laisse tout le monde tranquille, et bien tout simplement parce que j'aimerais comprendre!...

Discussions similaires

  1. Probleme d'incrementation dans une requete
    Par amne26 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 27/03/2009, 23h47
  2. Probleme d'incrementation par code
    Par bruce207 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 23/04/2008, 22h06
  3. Problem en Incrementation Auto
    Par sooprano dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/04/2008, 19h29
  4. probleme d'incrementation
    Par poyoland dans le forum Access
    Réponses: 4
    Dernier message: 14/06/2006, 16h54
  5. Probleme d'incrementation
    Par BFH dans le forum C
    Réponses: 3
    Dernier message: 29/10/2005, 16h35

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