[CGI] comment garder le contenu des mes champs quand je re-submit ?

comment garder le contenu des mes champs quand je re-submit ? [CGI] - Programmation

Marsh Posté le 14-03-2002 à 10:32:19    

hi.
 
J'ai une textarea qui est remplie par l'utilisateur quand il selectionne des lignes dans des listes. Le probleme c'est que je n'arrive pas a garder le contenu de ma textarea quand je fais plusieurs submit (chaque submit est sensé ajouter une ligne dans ma textarea si l'utilisateur a selectionné qque chose dans une des listes). Pourtant je sauve le contenu de ma textarea dans un hidden field que je passe en parametre et recupere apres mon submit. :??:
 
Schema de ce que je veux faire :
 
liste 1    liste 2
-------    -------
toto       titi
momo       mimi
 
si l'utilisateur selectionne toto et titi et fait un submit on obtient ça :
 
textarea
--------
tototiti
 
ensuite si il fait un 2eme submit avec momo et titi (par exemple) j'ai ça :
 
textarea
--------
momotiti
 
et bien sur moi je voudrais ça :
 
textarea
--------
tototiti
momotiti
 
Une idee ?
 
hihi :p

Reply

Marsh Posté le 14-03-2002 à 10:32:19   

Reply

Marsh Posté le 14-03-2002 à 10:34:28    

bah tu sauve le contenu et tu le reaffiche dans la text area.. c fait en quoi? perl?
<textarea name=...>'ancienne valeur+nouvelle</textarea>

 

[jfdsdjhfuetppo]--Message édité par DLR--[/jfdsdjhfuetppo]


---------------
Narf... It is broken...
Reply

Marsh Posté le 14-03-2002 à 10:40:20    

tu lances une fonction JS avec 'onClick' sur le bouton du submit
 
la fonction récupère la valeur du textarea et les valeurs selectionnées dans les listes et insère le tout dans la textarea


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

Marsh Posté le 14-03-2002 à 10:46:28    

Citation :

Pourtant je sauve le contenu de ma textarea dans un hidden field que je passe en parametre et recupere apres mon submit.


 

Citation :

bah tu sauve le contenu et tu le reaffiche dans la text area.. c fait en quoi? perl?


 
:sarcastic:
 
C'est du Perl effectivement. Je fais a peu pres ça :
 
 
 
if ($edit->param('save';))
{
  $mess = $edit->param('save';);
}
else
{
  $mess = "default value";
}
 
if ($edit->param('group';) || $edit->param('appli';) || $edit->param('object';))  
{
  if ($edit->param('group';)) {$mess = join(' SUPPRESS GROUP=', $mess, $edit->param('group';))};
  if ($edit->param('appli';)) {$mess = join(' SUPPRESS APPLI=', $mess, $edit->param('appli';))};
  if ($edit->param('object';)) {$mess = join(' SUPPRESS OBJECT=', $mess, $edit->param('object';))};
}
 
$save = $mess;
 
...
 
print $edit->textarea (
 -name => 'mess',
 -class => 'mess',
 -default => $mess,
 -columns => 60,
 -rows => 6
);
 
print $edit->hidden (
       -name => 'save',
       -value => $save
);
 
group, appli et object sont les noms de mes listes et mess est le nom de ma textarea.
 
hihi :D

Reply

Marsh Posté le 14-03-2002 à 11:12:29    

Y'a pas qqun pour me dire ce qui ne va pas dans mon code ? (ou alors "je ne comprends pas pkoi ça ne marche pas, ton code a l'air OK" ;) )
 
hihi [:impulse]

Reply

Marsh Posté le 14-03-2002 à 11:40:22    

Si je rajoute un "print $save;" juste apres mon "$save = $mess;" je peux verifier que $save contient ce qu'il faut... mais quand je fais un view source apres avoir fait mon submit je decouvre que la valeur de mon hidden 'save' n'est pas egal a $save :??:
 
Je comprends vraiment que dalle... pourquoi la valeur de $save change comme ça ???
 
hihi :p

Reply

Marsh Posté le 14-03-2002 à 11:42:54    

:hello:
perso j'utilise pas le module CGI
chose qui manque dans ton code impulse :D
 
j'utilise cgi-lib.pl
 
avec la fonction
 
readparse(*data,1);
 
avec  
$data{'nomduchamp'} == valeur du formulaire
 
et pour passer les valeur d'un formulaire à un autre
je rejoute en html dans mon <form> </form>
un <input type=hidden name="nomduchamp" value="$data{'nomduchamp'}">
et voila d'un form à un autre je retrouve tj mes variable
 
avec le modul CGI il doit y avoir un truc de ce style
c tout :jap:


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 14-03-2002 à 12:31:24    

Stef > je passe bien mes parametres d'un script a l'autre et je les recupere avec la methode param() (par exemple query->param('save';) = la valeur du champ hidden appelé 'save';). Le pb c'est que la valeur de mon $save change. Au debut de mon script $save a la bonne valeur mais quand je regarde la source de ma page html apres avoir fait un submit je me rend compte que ce n'est pas la valeur de $save qui est passée en param... c'est tres louche.
 
Je comprends pas trop ou est le pb.
 
hihi :D
 
EDIT : j'arrive a passer d'autres parametres sans aucun pb avec cette methode.

 

[jfdsdjhfuetppo]--Message édité par impulse--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 14-03-2002 à 14:15:50    

Merci pour vos reponses !
 
Bon je vais me debrouiller avec Javascript car je ne trouve pas le pb avec Perl... Donc j'ai une petite question conne : comment inserer une chaine de caracteres contenant des " dans une textarea ?
 
hihi :D

 

[jfdsdjhfuetppo]--Message édité par impulse--[/jfdsdjhfuetppo]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed