Actualisation sur une partie de la page

Signaler
Messages postés
214
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
23 juin 2006
-
gillardg
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
-
Bonjour à tous,
J'avais posé une question précédemment concernant l'actualisation d'une page toute les X secondes. J'ai trouvé la solution, mais un nouveau problème se pose:
En fait, mon projet est un chat, et on peut voir sur la droite de la page la liste des membres connectés (c'est pour cela que je voulais actualiser la page assez souvent). Ma page est en fait un grand tableau, dans lequel j'include d'autres pages, et la liste des personnes connectées fait partie des pages includées. Seulement, le problème est que lorsque je rafraichis, je rafraichis le grand tableau en entier, malgré le fait que j'ai placé le code d'actualisation dans la page affichant les connectés. Cela a pour résultat que lorsque je suis en train d'écrire un message et que la page s'actualise, je me retrouve avec mon textarea vide et j'ai plus qu'à tout retaper!
Voici le code de rafraichissement que j'utilise, car à mon avis c'est lui qui fait rafraichir la page entière et pas seulement la partie que je veux:

<script type="Text/Javascript">
window.setTimeout('window.location.reload(true)', 30000);
</script>

Voila, donc si vous avez des idées, n'hésitez pas.

16 réponses

Messages postés
315
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
21 mars 2011
1
Salut,

hum dans chaque tableau tu dois avoir une form que ta nommé
Si tu met window.setTimeout('window.document.nomformulaire.location.reload(true)', 30000);

J'en suis pas sure du tout mais qui ne tente rien n'a rien.
Messages postés
214
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
23 juin 2006

Non sa n'a pas l'air de marcher ton truc. j'ai appelé mon formulaire "liste" et j'ai fait:

window.setTimeout('window.document.liste.location.reload(true)', 30000);

et apparemment cela ne marche pas. C'est pourtant bien la syntaxe que tu m'avais dit.
Messages postés
315
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
21 mars 2011
1
euh essaye avec document.form[numéro du formulaire dans ta page].location.reload

Le premier commence à 0 je précise.
Messages postés
214
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
23 juin 2006

Excusez moi pour le temps de réponse j'ai du m'absenter...
Sinon, la commande javascript ce n'est pas form mais forms (avec le s). Mais meme comme ça ça ne marche pas. Dommage, mais je dois avouer que quand j'ai vu le message j'ai cru à la solution...
Messages postés
214
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
23 juin 2006

Sinon j'ai vu qu'avec les frames c'était possible, mais je n'arrive pas à insérer une frame dans un tableau. Est-ce que c'est possible en PHP?
Messages postés
315
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
21 mars 2011
1
bah disons que normalement tu gènère ou des tableaux ou les frames et pas les deux !

De plus les frames sont certes utiles mais pas tout le temps bien exécuté par certains navigateur qui les désactive, jte les conseille donc pas

Pour en revenir au problème, tu n'as qu'a faire un test avant d'exécuter ton script :
tu met un champs caché dans le formulaire ou tu veuq ue ta page se reload du style

puis tu test
if(form == yes)
{
<script type="Text/Javascript">
window.setTimeout('window.location.reload(true)', 30000);
</script>
}

et là ca devrai marché !
Messages postés
214
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
23 juin 2006

euh... Je suis désolé mais je ne pense pas avoir tout compris...
Comment est envoyé le champ caché? car il n'y a pas de bouton submit sur mon formulaire. Peux-tu donner plus de détails STP
Messages postés
315
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
21 mars 2011
1
Hein ?? comment tu peu avoir de bouton submit, tu l'execute après quoi ton script ?
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
20
Hello,

tu as deux très jolis chat utilisant les requêtes xmlhttp, sur ce site.
Cherche dans les codes sources...
Je pense quie tu y trouveras la réponse à ta question.
Messages postés
214
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
23 juin 2006

bah justement je n'ai pas de bouton submit, alors comment le champ caché est-il envoyé? Pour les chats, j'ai commencé à regardé, mais les requetes xmlhttp, je n'y ai malheureusement rien compris... :-(
Messages postés
315
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
21 mars 2011
1
Bah evidement que si t'en a pas, il est clair que ma solution tombe a l'eau

Quand est ce que ton script est appelé ?
Messages postés
214
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
23 juin 2006

j'appelle le script d'actualisation au début de ma page (avant le body). Ce n'est peut etre pas ici qu'il faut l'appeler (je débute en javascript)
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
20
Ptête, mais c'est ce qui sera le mieux pour toi, ET tu n'auras pas ce problème d'effacement lors d'un refresh.
Messages postés
315
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
21 mars 2011
1
Euh la, je suis vraiment a cours d'idée ... faut que j'y réfléchisse ce soir mais la je doi y aller ...

Bon courage, la persévérance paie toujours.
Messages postés
6
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
25 août 2010

au lieu de :
<script type="Text/Javascript">
window.setTimeout('window.location.reload(true)', 30000);
</script>

fait Ça:

<script type="Text/Javascript">
setTimeout('s=document.nom_form.nom_text.value;self.location.href="nom_page.php?texte="+s;', 30000);
</script>
//nom de zone de texte de message
//si n'a marche pas met s=document....+s ds une function et l'appeler ds settimeout


et dans zone de texte ajouter le code en bleu

"...>
pdh,
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
Bonjour,

heu tout simple , à mon avis , crée ta page avec des frames ( oui je sais il y en a qui vont dire : les frames ceci cela bla bla)
et rafraichis la frame userlist <META HTTP-EQUIV="Refresh"

CONTENT="30; URL=page_user.php"/>

ça fonctionne j'utilise ça pour faire passer plus de pub dans certaines pages , toutes les 30 secondes la frame publicité se rafraichit pour afficher une nouvelle pub

exemple : http://gillardg.net/pictures/

a+
google est mon ami quand tu cherches quelque chose demande lui clairement