Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1294 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  génération dynamique de <select> dans un form

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

génération dynamique de <select> dans un form

n°1387222
jl nash
Posté le 14-06-2006 à 11:19:33  profilanswer
 

Bonjour,
Voila j'ai un script CGI en perl qui doit générer un formulaire contenant des <select> et un submit.
Le problème c'est que le nombre de select est généré dynamiquement en fonction de données derrière et que le formulaire rappele la meme page.
-> Donc il me faut des variables globales qui portent le meme nom que mes noms de <select> et surtout il faudrait que j'ai le même nombre de variables globales que de <select>.
 
Le problème est la puique je ne peux pas générer dynamiquement un nombre de variables globales ...  
 
 
J'avais penser a une solution du genre :
 
use vars qw ($version0 $version1 $version2 $version3 $version4 $version5 $version6 $version7 $version8 $version9);
...
for (my $i=0;$i<$taille;$i++) {
    <select name=\"version$i\">
}
...
 
Mais cette solution nest limité a une génération limitée de <select> , c'est pas trop propre ...
 
Avez vous des idées parceque la moi je seche ...
merci


Message édité par jl nash le 14-06-2006 à 11:26:19
mood
Publicité
Posté le 14-06-2006 à 11:19:33  profilanswer
 

n°1387236
Elmoricq
Modérateur
Posté le 14-06-2006 à 11:28:33  profilanswer
 

Tu stockes dans un champ de type "hidden" le nombre de "select" que tu crées. Admettons que tu l'appelles select_machin_count.
Et pour chaque select que tu ajoutes, tu lui donnes un identifiant prévisible, du type "select_machin_i", avec i incrémenté à chaque select.
 
A la lecture, il te suffit de récupérer les variables CGI "select_machin_i", avec i variant de 0 à select_machin_count.
Tu stockes les valeurs dans un tableau, et le tour est joué, en peu de lignes de codes, et sans que ce ne soit trop laid.


Message édité par Elmoricq le 14-06-2006 à 11:30:11
n°1387279
jl nash
Posté le 14-06-2006 à 12:11:19  profilanswer
 

Ouais je vois ce que tu veu me dire mais le problème c'est qu'il faut que je déclare le même nombre de variables globales que de <select> générés et les variables globales c'est en dur, il faut que j'en mette un nombre prédéfini ....
L'idéal pour moi serait que je puisse créer mes variables globales dynamiquement ... c'est possible ?

n°1387281
Elmoricq
Modérateur
Posté le 14-06-2006 à 12:14:17  profilanswer
 

jl nash a écrit :

Ouais je vois ce que tu veu me dire mais le problème c'est qu'il faut que je déclare le même nombre de variables globales que de <select> générés et les variables globales c'est en dur, il faut que j'en mette un nombre prédéfini ....


 
Je me cite moi-même :

Citation :

Tu stockes les valeurs dans un tableau, et le tour est joué,


 
Bon, ça c'est côté PERL.
 
Côté feuille HTML, là pas le choix, chaque select doit avoir son propre identifiant. Mais vu que générer un CGI c'est juste balancer du texte qui sera ensuite interprété par un navigateur, rien de plus simple que de générer 1, 12 ou 42 identifiants comme tu veux.


Message édité par Elmoricq le 14-06-2006 à 12:15:44
n°1387312
jl nash
Posté le 14-06-2006 à 12:42:19  profilanswer
 

oui ça c'est ok pour générer mes <select> avec chacun un id qui s'incrément mais mon pb c'est la récup du contenu du <select>
 
T'es bien obligé de déclarer une variable globale qui porte le meme nom que celui de ton <select> non ??
 

Citation :

A la lecture, il te suffit de récupérer les variables CGI "select_machin_i", avec i variant de 0 à select_machin_count.


 
C'est ça que je voudrai faire mais je peu pas faire un truc du genre :
 
for (my $j=0 ; $j<$select_machin_count; $j++) {
    use vars qw ( $select_machin_$j );
}
 
une fois que j'orai récupérer ces variables je serai sauvé mais c'est juste ça mon problème

n°1387317
Elmoricq
Modérateur
Posté le 14-06-2006 à 12:49:59  profilanswer
 


# récupération des valeurs
my @select_machin_values  = ();
foreach my $i ( 0..$select_machin_count )
{
   push @select_machin_values, <ce que tu utilises pour récupérer select_machin_$i>;
}
 
## exemples d'utilisations du tableau
print "Nombre de valeurs : $#select_machin_values \n" ;
print "Valeur n° 3 : $select_machin_values[2] \n" ;
 
print "Impression de la totalité du tableau : \n";
foreach ( @select_machin_values )
{
   print "$_\n";
}
 


 
 
http://perldoc.perl.org/perldata.html


Message édité par Elmoricq le 14-06-2006 à 12:51:18
n°1387329
jl nash
Posté le 14-06-2006 à 13:15:51  profilanswer
 

tout mon pb est dans le :

Citation :

<ce que tu utilises pour récupérer select_machin_$i>;


 
le reste c'est bon il faut juste que j'arive a choper le contenu de mes <seleect>

n°1387338
Elmoricq
Modérateur
Posté le 14-06-2006 à 13:22:34  profilanswer
 

Tu utilises quel module ? CGI.pm ?
 
Si oui, un bête $instance_de_cgi->param("select_machin_$i" ) et tu as ta valeur.

n°1387388
jl nash
Posté le 14-06-2006 à 13:49:17  profilanswer
 

oué mai le pb c ke tou mon site repose sur des librairies "maison" (c pr mon taf) et je les maitrise pa encore enfin bref normalement je pose :
 
use vars qw ($nomDeMonSelect);
 
et sa récupere automatiquement le contenu de mon select (nommé nomDeMonSelect) dans la variable $nomDeMonSelect
 
Merci quand même je vais plancher la dessus ...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  génération dynamique de <select> dans un form

 

Sujets relatifs
[RESOLU] [C #] Activation d'un form et désactivation d'un autre[SQL] select count(*)
[Javascript] Créer un evenement "ondblclick" dans un SELECTselect count(*) + group by : les sortir en php
confirmation de suppression dans un form - je patauge ![Oracle] Problème avec un SELECT
Ajout dynamique d'input (incompatible)La methode range.select
Plusieurs "form" imbriquéesSELECT
Plus de sujets relatifs à : génération dynamique de <select> dans un form


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR