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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Garder les champs saisis lors d'un rafraichissement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Garder les champs saisis lors d'un rafraichissement

n°1096277
Ryujin
Posté le 25-05-2005 à 11:32:44  profilanswer
 

Bonjour,
 
Voilà je travaille actuellement sur un formulaire comportant beaucoup de champs. Certaines listes mettent à jour dynamiquement d'autres listes de ce formulaire, et ce faisant elles rafraichissent la page. Je perds donc les valeurs des autres champs saisis (texte, cases à cocher, etc.).
Je pense que la solution se trouve du coté du javascript, mais je n'ai encore rien trouvé à ce sujet (uniquement trouvé pour garder les valeurs apres un submit).
Sauriez-vous donc comment résoudre ce probleme ?
 
Merci de votre aide.

mood
Publicité
Posté le 25-05-2005 à 11:32:44  profilanswer
 

n°1096283
plainsofpa​in
Pingouino's lover
Posté le 25-05-2005 à 11:33:38  profilanswer
 

tu perds les valeurs ? fais un submit de tes variables en actualisant, puisque tu les remet dans des champs cachés du meme nom ...


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1096298
denzz
huhuuuuu ! (désolé )
Posté le 25-05-2005 à 11:38:31  profilanswer
 

Ryujin a écrit :


Certaines listes mettent à jour dynamiquement d'autres listes de ce formulaire, et ce faisant elles rafraichissent la page.


 
une autre solution serait de ne pas rafraichir ta page justement
voilà la petite astuce :  
tu effectues le traitement de mise à jour de tes listes dans une page php  
cette page php est appelée dans une frame cachée pour que ce soie transparent pour l'utilisateur...
et le contenu de cette page est une fonction js construite par ton php qui écrit le code javascript qui va bien (tu peux mettre à jour une liste via javascript, je te laisse chercher) et enfin ferme la fenêtre
ensuite, sur le body "html" de ta page php qui met à jour les listes fait tout simplement un onLoad=maFonctionQuiMetAJourLesListes();
et le tour est joué
j'espère avoir été à peu près clair... le reste c du jscript

n°1096310
gatsusat
Posté le 25-05-2005 à 11:43:00  profilanswer
 

denzz a écrit :

une autre solution serait de ne pas rafraichir ta page justement
voilà la petite astuce :  
tu effectues le traitement de mise à jour de tes listes dans une page php  
cette page php est appelée dans une frame cachée pour que ce soie transparent pour l'utilisateur...
et le contenu de cette page est une fonction js construite par ton php qui écrit le code javascript qui va bien (tu peux mettre à jour une liste via javascript, je te laisse chercher) et enfin ferme la fenêtre
ensuite, sur le body "html" de ta page php qui met à jour les listes fait tout simplement un onLoad=maFonctionQuiMetAJourLesListes();
et le tour est joué
j'espère avoir été à peu près clair... le reste c du jscript


 
 :o  :fou:  :fou:  
 
http://openweb.eu.org/articles/objet_xmlhttprequest/

n°1096375
robbyone
Non pas !
Posté le 25-05-2005 à 12:01:08  profilanswer
 

plainsofpain a écrit :

tu perds les valeurs ? fais un submit de tes variables en actualisant, puisque tu les remet dans des champs cachés du meme nom ...


+1


---------------
La curiosité est un vilain défaut car l'erreur et la frustration sont de croire qu'elle pourra être satisfaite !
n°1096378
denzz
huhuuuuu ! (désolé )
Posté le 25-05-2005 à 12:01:51  profilanswer
 


 
 :jap:  :jap:  
 :sweat: pkoi tant de haine ?  

n°1096382
gatsusat
Posté le 25-05-2005 à 12:02:31  profilanswer
 

ben on va dire que tu étais parti pour du boulot crade.
 
On est en 2005 mon ami

n°1096404
Ryujin
Posté le 25-05-2005 à 12:12:37  profilanswer
 

Merci pour vos réponses  :wahoo:  
 

plainsofpain a écrit :

tu perds les valeurs ? fais un submit de tes variables en actualisant, puisque tu les remet dans des champs cachés du meme nom ...


 
Je ne comprend qu'à moitié cette solution, serait-il possible de l'expliciter ?  :??:  
Si je comprend bien (ce qui n'a pas l'air d'etre le cas) pour chaque champ j'ai un champ hidden associé qui porte le meme nom. Donc je me retrouve avec 2 champs qui ont la meme valeur, mais ca me donne quoi concretement ?  :??:

n°1096421
plainsofpa​in
Pingouino's lover
Posté le 25-05-2005 à 12:24:24  profilanswer
 

genre t'as ce champ la
 

Code :
  1. <input type="text" nom="toto" />


 
la il n'y a pas de valeur par defaut, mais genre tu peux faire
 

Code :
  1. <input type="text" name="toto" valeur="<?echo $_POST["toto"];?>" />


 
Bien sur, cela est en php, et nécessite comme j'ai dit de soumettre les valeurs déja remplies au moment ou ca actualise ...
 
Edit : bien sur j'ai mis post en supposant que tu envoie le formulaire avec method="post". Il faiut aussi ne pas oublier le test d'existence de la variable $_POST["toto"].


Message édité par plainsofpain le 25-05-2005 à 12:26:02

---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1096426
Ryujin
Posté le 25-05-2005 à 12:30:07  profilanswer
 

Oui je connaissais cela, et utilisé le PHP ne me gêne pas c'est déjà le cas pour beaucoup de choses dans mon formulaire. En fait mon "probleme" est le submit dont tu parles, où doit il se faire vu que ce n'est pas à la validation du formulaire que je souhaite garder ces valeurs mais lors du rafraichissement.
Et où interviennent les champs cachés dont tu parles également ?
 
Merci pour tes eclaircissements :)

mood
Publicité
Posté le 25-05-2005 à 12:30:07  profilanswer
 

n°1096430
plainsofpa​in
Pingouino's lover
Posté le 25-05-2005 à 12:33:08  profilanswer
 

la fonction qui rafraichit est en javascript ?


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1096471
robbyone
Non pas !
Posté le 25-05-2005 à 13:09:51  profilanswer
 

Je crois comprendre :
1_ il te faut donc un formulaire qui va pointer sur la même page php (formulaire de rafraichissement) et tu posera des onchange="submit()" sur les select qui nécessitent un refresh
2_ il te faut un second formulaire qui va pointer vers ta page de traitement et qui sera composé du bouton de soumission et des champs cachés doublons des champs du premier formulaire dont les valeurs seront les valeurs passées en paramètre lors du refresh.
 
Jouable ... y-a sûrement mieux mais c'est jouable.


---------------
La curiosité est un vilain défaut car l'erreur et la frustration sont de croire qu'elle pourra être satisfaite !
n°1096542
Ryujin
Posté le 25-05-2005 à 13:55:55  profilanswer
 

Je ne vous ai ptet pas donné tous les éléments pour mon probleme, le rafraichissement se fait dans une fonction javascript comme cela :

Code :
  1. function cible(fichier,recherche,ecran,imprimante){
  2. nP=recherche.marque.selectedIndex;
  3. var url="";
  4. url +=fichier;
  5. url +="?marque=";
  6. url += nP;
  7. url +="&ecran=";
  8. url +=ecran;
  9. url +="&imprimante=";
  10. url +=imprimante;
  11. location.href=url;
  12. }


cette fonction me sert pour que quand je selectionne une "marque" d'ordinateur, par exemple, dans une liste déroulante, elle me met à jour la liste déroulante correspondant aux "modèles" de cette marque. Et envoie par conséquent dans l'url l'option choisie dans la liste, que je récuppère aussitot dans la requete listant ses modèles. C'est donc ici que la page se rafraichie.
 

Citation :

Je crois comprendre :
1_ il te faut donc un formulaire qui va pointer sur la même page php (formulaire de rafraichissement) et tu posera des onchange="submit()" sur les select qui nécessitent un refresh
2_ il te faut un second formulaire qui va pointer vers ta page de traitement et qui sera composé du bouton de soumission et des champs cachés doublons des champs du premier formulaire dont les valeurs seront les valeurs passées en paramètre lors du refresh.
 
Jouable ... y-a sûrement mieux mais c'est jouable.


Je pense avoir compris, mais le "hic" est que j'aurais le nombre de mes requetes qui doubleraient, du moins je dois réexecuter mes requetes pour chacun de mes champs caché (autres listes déroulantes et case à cocher notamment).  :sweat: Le formulaire étant déjà conséquent, je prefere envisager qu'il y ai une autre solution  :(  
 
Merci pour l'aide apportée.

n°1096578
robbyone
Non pas !
Posté le 25-05-2005 à 14:10:41  profilanswer
 

Que neni, les champs cachés ne sont mis à jour que par le biais du rechargement de la page.
 
Le premier formulaire sert à faire des choix, à chacun de ces choix la valeur du champ est copiée dans le champ caché correspondant. Si cela entraine un refresh, les valeurs cachées sont passées en paramètre, ce qui te permet de réinitialiser tes champs.
Lors du rechargement, tu fais tes requête (tu peux stoquer dans des tables temporaires le résultat : d'ailleurs la fonction php pg_fetch_array le fait toute seule) et tu remplis tes champs ainsi au fur et à mesure.


---------------
La curiosité est un vilain défaut car l'erreur et la frustration sont de croire qu'elle pourra être satisfaite !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Garder les champs saisis lors d'un rafraichissement

 

Sujets relatifs
[MySQL] Concaténation de champs [Résolu]Garder la qualité d'une image
Rafraichissement image en javaRemplir des champs d'un fichier pdf
Bloquer certains champs d'un formulaireremise à blanc de tous les champs
zones et champs texte dans formulairemail () plusieurs champs dans formulaire
prob de liste avec 2 champs de comparaisonProblème avec requète sur 2 champs ...
Plus de sujets relatifs à : Garder les champs saisis lors d'un rafraichissement


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