Actualisation sur une partie de la page

David_monchy Messages postés 214 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 23 juin 2006 - 28 mars 2006 à 10:46
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 - 26 août 2010 à 11:10
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

raven44 Messages postés 315 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 21 mars 2011 1
28 mars 2006 à 11:02
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.
David_monchy Messages postés 214 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 23 juin 2006 1
28 mars 2006 à 11:18
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.
raven44 Messages postés 315 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 21 mars 2011 1
28 mars 2006 à 11:31
euh essaye avec document.form[numéro du formulaire dans ta page].location.reload

Le premier commence à 0 je précise.
David_monchy Messages postés 214 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 23 juin 2006 1
28 mars 2006 à 14:08
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...

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
David_monchy Messages postés 214 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 23 juin 2006 1
28 mars 2006 à 14:37
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?
raven44 Messages postés 315 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 21 mars 2011 1
28 mars 2006 à 15:31
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é !
David_monchy Messages postés 214 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 23 juin 2006 1
28 mars 2006 à 15:58
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
raven44 Messages postés 315 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 21 mars 2011 1
28 mars 2006 à 15:59
Hein ?? comment tu peu avoir de bouton submit, tu l'execute après quoi ton script ?
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
28 mars 2006 à 16:00
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.
David_monchy Messages postés 214 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 23 juin 2006 1
28 mars 2006 à 16:02
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... :-(
raven44 Messages postés 315 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 21 mars 2011 1
28 mars 2006 à 16:06
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é ?
David_monchy Messages postés 214 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 23 juin 2006 1
28 mars 2006 à 16:10
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)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
28 mars 2006 à 16:11
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.
raven44 Messages postés 315 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 21 mars 2011 1
28 mars 2006 à 16:18
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.
pdhjd01 Messages postés 6 Date d'inscription jeudi 3 janvier 2008 Statut Membre Dernière intervention 25 août 2010
25 août 2010 à 18:11
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,
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
26 août 2010 à 11:10
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
Rejoignez-nous