PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.info.auteurs > probleme de rafraichissement
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
probleme de rafraichissement

Réponse
 
LinkBack Outils de la discussion
Vieux 20/03/2008, 19h03   #1 (permalink)
J-F Portala
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut probleme de rafraichissement

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



  Réponse avec citation
Vieux 20/03/2008, 19h55   #2 (permalink)
SAM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: probleme de rafraichissement

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
  Réponse avec citation
Vieux 20/03/2008, 21h38   #3 (permalink)
J-F Portala
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: probleme de rafraichissement

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



  Réponse avec citation
Vieux 20/03/2008, 23h07   #4 (permalink)
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: probleme de rafraichissement

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.
  Réponse avec citation
Vieux 20/03/2008, 23h51   #5 (permalink)
SAM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: probleme de rafraichissement

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
  Réponse avec citation
Vieux 21/03/2008, 01h09   #6 (permalink)
SAM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: probleme de rafraichissement

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
  Réponse avec citation
Vieux 21/03/2008, 12h56   #7 (permalink)
Laurent vilday
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: probleme de rafraichissement

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_Objectsate: 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
  Réponse avec citation
Vieux 21/03/2008, 13h37   #8 (permalink)
SAM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: probleme de rafraichissement

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
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 03h55.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,14301 seconds with 16 queries