Actualiser une page...

Actualiser une page... - HTML/CSS - Programmation

Marsh Posté le 27-05-2007 à 12:36:10    

Salut à tous !
 
Mon problème est tout bête :
j'ai fait un système de commentaires
sur mon site, relié à une base MySQL.
 
J'ai créé une ancre #com au niveau du
dernier commentaire.
 
En faisant ça dans mon submit :
 

Code :
  1. <script language="javascript" type="text/javascript">
  2.    var doc = document.location.href.split("#" );
  3.    window.location.replace(doc[0]);
  4. </script>


 
...il me recharge la page sans problème. Mon dernier
commentaire apparait bien.
Mais bien sûr, la page n'est pas au niveau de mon ancre,
mais en haut de page (normal).
 
Mais quand je mets ça :
 

Code :
  1. <script language="javascript" type="text/javascript">
  2.    var doc = document.location.href.split("#" );
  3.    window.location.replace(doc[0] + "#com" );
  4. </script>


 
...ça me place au niveau de l'ancre, mais sans
m'actualiser ma page.
 
Comment puis-je à la fois actualiser la page et me
placer au niveau de l'ancre ???

Reply

Marsh Posté le 27-05-2007 à 12:36:10   

Reply

Marsh Posté le 27-05-2007 à 14:53:22    

A mon avis c'est normal dans le deuxieme cas puisque tu lui dis juste d'aller vers #com, donc il n'a pas besoin de recharger.
 
Tu peux surement le faire en deux fois... M'enfin le mieux c'est p'tet encore de le faire via PHP à la fin de ton script d'ajout, non ?

Reply

Marsh Posté le 27-05-2007 à 15:00:39    

Sûrement, oui, mais en PHP, tu fais ça comment ?
La fonction header() peut pas marcher dans mon
cas, puisque du texte a déjà été affiché.
 
T'as une autre solution ?

Reply

Marsh Posté le 27-05-2007 à 16:23:41    


En gros tu veux afficher un texte, et qu'au bout de quelques secondes ca redirige c'est ca ? genre comme ici quand on post un message ?
 

Code :
  1. <?php header("Refresh: 2; URL= tonurl.php" ); ?>


 
?


Message édité par did-54 le 27-05-2007 à 16:24:04
Reply

Marsh Posté le 27-05-2007 à 17:36:17    

Justement pas, non, l'idéal serait de ne pas avoir
à passer par une page bidon.
Ce que je veux, c'est que l'utilisateur poste son  
message en cliquant sur le bouton, et que là, la
page se recharge (s'actualise), ce qui est le cas
actuellement, mais qu'en plus, elle se place  
directement au niveau de l'ancre #com, qui  
correspond à l'emplacement du message nouvellement
ajouté.

Reply

Marsh Posté le 27-05-2007 à 17:56:13    

mais tu le poste comment ton commentaire ? Faut bien que t'appelle une page d'ajout, donc la redirection, ca fonctionne ! en mettant URL = monurl.php#com evidemment.

Reply

Marsh Posté le 27-05-2007 à 18:00:00    

Je n'appelle aucune page d'ajout, j'utilise la
fonction javascript  

Code :
  1. window.location.replace(monurl.php)


Et comme je l'expliquais ci-dessus, quand je
met monurl.php, ça roule.
Mais quand je met monurl.php#com (évidemment),
la redirection ne s'effectue pas (il ne recharge pas
la page et se contente d'aller à l'ancre #com, du  
coup, le message ajouté n'est pas apparu).

Reply

Marsh Posté le 27-05-2007 à 18:16:43    

nan mais le commentairee en lui même, il est ajouté comment ? t'as bien un formulaire et une action qui lui est lié !?

Reply

Marsh Posté le 27-05-2007 à 18:20:36    

Oui, absolument, dans l'action de mon bouton de validation,
j'ajoute les données à une base MySQL. Les commentaires
déjà affichés sont lus à partir de cette base, c'est pour cette
raison que le commentaire fraichement inséré n'est visible  
qu'après actualisation de la page.

Reply

Marsh Posté le 27-05-2007 à 19:28:14    

donc je disais, si à la fin de ton script d'ajout tu métais un header de redirection tout simple style <?php header("Location:commentaires.php#com" ); ca ferait pas l'affaire ?

Reply

Marsh Posté le 27-05-2007 à 19:28:14   

Reply

Marsh Posté le 27-05-2007 à 20:10:16    

Non, le header() ne peut se placer
qu'en début de fichier. Je ne peux
pas en mettre un à cet endroit-là.
J'ai déjà essayé, et ça renvoie un
message d'erreur...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed