|
|
|
#1 (permalink) |
|
Messages: n/a
Hébergeur: |
Bonjour, je travaille en php avec javascript.
J'ai une page qui est rafraichie régulierement pour afficher des valeurs d'une base de données Cette page possède aussi un formulaire avec un champ à saisir. Le probleme est que lorsque l'on saisit le champ et qu'un rafraichissement survient, tout le champ est efffacé. Est ce que je m'y prends mal ou peut on contourner le probleme Merci de votre aide Jeff |
|
|
|
#2 (permalink) |
|
Messages: n/a
Hébergeur: |
J-F Portala a écrit :
> Bonjour, je travaille en php avec javascript. > J'ai une page qui est rafraichie régulierement pour afficher des valeurs > d'une base de données rafraichissement par meta ? si rafraichissement par JS, envoyer en variable attachée le contenu de l'input et au PHP de le remettre > Cette page possède aussi un formulaire avec un champ à saisir. > Le probleme est que lorsque l'on saisit le champ et qu'un rafraichissement > survient, tout le champ est efffacé. Ce n'est pas normal. si ? > Est ce que je m'y prends mal ou peut on contourner le probleme avoir une iframe où la page mentholée est affichée ? ? -- sm |
|
|
|
#3 (permalink) |
|
Messages: n/a
Hébergeur: |
Merci de ta réponse qui me fait me poser pas mal de questions.
"SAM" <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> a écrit dans le message de news: 47e2b33b$0$888$ba4acef3@news.orange.fr... > J-F Portala a écrit : >> Bonjour, je travaille en php avec javascript. >> J'ai une page qui est rafraichie régulierement pour afficher des valeurs >> d'une base de données > > rafraichissement par meta ? non par fonction javascript liée à l'événement onload. > > si rafraichissement par JS, > envoyer en variable attachée le contenu de l'input Est ce que cela veut dire que dans la fonction de rafraichissement, je dois tester le champ de saisie pour vérifier s'il contient quelque chose > et au PHP de le remettre j'avoue que je ne voie pas le role de PHP ici > >> Cette page possède aussi un formulaire avec un champ à saisir. >> Le probleme est que lorsque l'on saisit le champ et qu'un >> rafraichissement survient, tout le champ est efffacé. > > Ce n'est pas normal. si ? si si > >> Est ce que je m'y prends mal ou peut on contourner le probleme > > avoir une iframe où la page mentholée est affichée ? j'ai entendu dire qu'il fallait éviter les frames (iframe = frame?) > > ? Je ne vois pas comment utiliser un désolé de mon inculture. Jeff > > -- > sm |
|
|
|
#4 (permalink) |
|
Messages: n/a
Hébergeur: |
Le 20/03/2008 21:38, J-F Portala a écrit :
>> >> si rafraichissement par JS, >> envoyer en variable attachée le contenu de l'input > > Est ce que cela veut dire que dans la fonction de rafraichissement, je dois > tester le champ de saisie pour vérifier s'il contient quelque chose Je ne dirais pas « tester » car cela suppose que tu veuilles faire une chose différente selon que le contenu est vide ou pas. Il te suffit, dans la nouvelle requête faite par Javascript, d'envoyer le contenu du champ quel qu'il soit (donc, qu'il soit vide ou non). >> et au PHP de le remettre > j'avoue que je ne voie pas le role de PHP ici N'est-ce pas avec PHP que tu génères la page ? Si oui, c'est donc bien à lui d'envoyer une page qui contiendra déjà le contenu qui avait été saisi par l'utilisateur. |
|
|
|
#5 (permalink) |
|
Messages: n/a
Hébergeur: |
J-F Portala a écrit :
>> si rafraichissement par JS, >> envoyer en variable attachée le contenu de l'input > > Est ce que cela veut dire que dans la fonction de rafraichissement, je dois > tester le champ de saisie pour vérifier s'il contient quelque chose non, on s'en moque on envoie la donnée vide et elle revient vide, pas plus. >> et au PHP de le remettre > j'avoue que je ne voie pas le role de PHP ici <?php $chp = truc machin php de récup de la variable de l'url; # les trucs via base de donnée # et autre codes php nécessaires ?> <body onload="setTimeout(function(){ self.location=self.location+'?chp='+ document.monForm.monChp.value+'&+'v='+ Math.random();} ,5000);"> <form name="monForm" action="truc.php"> Pseudo : <input name="monChp" value="<?php echo $chp ?>"> </form> >>> rafraichissement survient, tout le champ est efffacé. >> Ce n'est pas normal. si ? > si si Non, avec une page normale rafraichie par meta, les contenus des champs sont gardés (en tous cas avec les brouteurs que je pratique) >>> Est ce que je m'y prends mal ou peut on contourner le probleme >> avoir une iframe où la page mentholée est affichée ? > j'ai entendu dire qu'il fallait éviter les frames (iframe = frame?) Pour le référencement, et pour la mise en favoris ce n'est pas recommandé. Tu a besoin que ta page rafraichissante soit connue du monde ? Et puis d'abord, elle sert à quoi ? La BdD évolue tout le temps ? à chaque instant ? >> ? > Je ne vois pas comment utiliser un on remplit le champ, on en sort, le JS crée ou renseigne un ccokie (qui est gardé sur le DD du visiteur) à l'ouverture de la page le JS interroge le et va re-remplir le champ C'est quand même plus propre que ce soit le php qui remplisse le champ. > désolé de mon inculture. c'est un peu compliqué juste pour une valeur d'un champ <http://fr.selfhtml.org/javascript/objets/document.htm#> <http://fr.selfhtml.org/javascript/exemples/visites_pages.htm> -- sm |
|
|
|
#6 (permalink) |
|
Messages: n/a
Hébergeur: |
SAM a écrit :
> > <body onload="setTimeout(function(){ > self.location=self.location+'?chp='+ > document.monForm.monChp.value+'&+'v='+ > Math.random();} > ,5000);"> correctif : <body onload="setTimeout(function(){ self.location=self.location+'?chp='+ document.monForm.monChp.value+'&v='+ Math.random();} ,5000);"> &v = Math.random() ne sert qu'à avoir une url différente à chaque appel (afin de forcer le rechargement depuis le serveur et non depuis le cache) -- sm |
|
|
|
#7 (permalink) |
|
Messages: n/a
Hébergeur: |
SAM a écrit :
> <body onload="setTimeout(function(){ > self.location=self.location+'?chp='+ > document.monForm.monChp.value+'&v='+ > Math.random();} > ,5000);"> > > > > &v = Math.random() > > ne sert qu'à avoir une url différente à chaque appel > (afin de forcer le rechargement depuis le serveur et non depuis le cache) Un chiffre aléatoire pouvant avoir deux fois de suite la même valeur, j'utiliserais plutôt quelque chose de réellement unique comme le nbr de millisecondes depuis le 01/01/1970 00:00:00 (new Date().getTime()). <http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects ate: getTime>'&v='+(new Date().getTime()) Sinon sans tester, je crois que ça peut "fonctionner" la 1ere fois puis après c'est tout cassé. Je m'explique : 1) url == foo.php 2) self.location = self.location + '?chp=1' ==> url == foo.php?chp=1 3) self.location = self.location + '?chp=2' ==> url == foo.php?chp=1?chp=2 ==> bug -- laurent |
|
|
|
#8 (permalink) |
|
Messages: n/a
Hébergeur: |
Laurent vilday a écrit :
> > '&v='+(new Date().getTime()) toutafé c'est bp mieux. > Sinon sans tester, je crois que ça peut "fonctionner" la 1ere fois puis > après c'est tout cassé. Je m'explique : Merdum ! mais c'est bien vrai ! > 1) url == foo.php > > 2) self.location = self.location + '?chp=1' > ==> url == foo.php?chp=1 > > 3) self.location = self.location + '?chp=2' > ==> url == foo.php?chp=1?chp=2 > ==> bug va falloir prévoir une fonction alors car dans la balise ça finit par faire chargé sinon brouillon Sauf à mettre en dur l'url kivabien <body onload="setTimeout(function(){ self.location = 'monFichier.php?chp=' + document.monForm.monChp.value + '&v=' + (new Date().getTime()); } ,5000);"> espérons que cette fois ... -- sm |
|
![]() |
| Outils de la discussion | |
|
|