pb de rafraichissement sous IE avec mes formulaires

pb de rafraichissement sous IE avec mes formulaires - PHP - Programmation

Marsh Posté le 14-08-2005 à 03:23:17    

voila, j'affiches mon formulaire qui est en fait le contenu du table MySQL.
 
1./ Je modifie 1 champs, un <intput type='text">,  
2./ puis je clique sur Mise A jour.  
3./ Cela me fait un submit vers une autre page php qui me fais un update de la base de donnée  
4./ puis apres à l'aide je reviens sur ma page automatiquement avec un document.href, pour lister à nouveau la base de donnée.
 
 
Cela fonctionne parfaitement sous Firefox. Je fais une modification d'un champs, j'appuis sur le bouton MAJ et hop ca affiche la nouvelle valleur.  
Sous IE, il faut que je fasse F5 pour voire apparaitre le nouveau resultat.  
 
J'ai fais des recherches et j'ai essayé d'utilisé :      
 

<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />  
<meta http-equiv="Expires" content="0" />


 
pour demander au navigateur de ne pas utiliser son cache. Cela fonctionne mais une fois sur 2.
Je fais un premier changement, ca fonctionne pas... Je fais F5, le resultat apparait. Je remodifie mon champs puis j'appuis sur MAJ et la ca fonctionne. En fait il faut que je fasse avant F5 pour que cela fonctionne la fois suivante.
 
j'ai essayé bricolé en utilisant $_SERVER["HTTP_REFERER"], pour faire un reload en javascript sur la page principal uniquement si la page precedente était update.php, mais la valeur ne s'incrit pas (y a pas de valeur) à cause de ma redirection document.href.

Reply

Marsh Posté le 14-08-2005 à 03:23:17   

Reply

Marsh Posté le 14-08-2005 à 03:47:00    

Bienvenu dans le monde merveilleux d'internet explorer. Remarque, tu te demanderas plus pourquoi on ne fait pas une redirection en javascript pour ton problème, mais une au niveau du serveur avec un header("Location: x.php" ); :)

Reply

Marsh Posté le 14-08-2005 à 15:15:31    

franchement dommage de devoir etre obligé d'utiliser header. Ca fonctionne mais :(
 
 
voilou, ma recupération des valeurs de mon formulaires puis insertions de valeurs et enfin, derniere ligne redirection avec le header.
 

Code :
  1. <?
  2. include ('connexion.php');
  3. mysql_connect($hostname,$mysqluser,$mysqlpswd);
  4. mysql_selectdb($database) or die($diemessage);
  5. $ID=explode("|",$_POST['ID_change']);
  6. for ($i=1 ; $i < $_GET['nb']+1 ; $i++)
  7. {
  8. $j=0;
  9. $ID2=explode("+",$ID[$i]);
  10. $num=$ID2[0];
  11. $pprix12=$_POST['prix12'.$num];
  12. $pID=$_POST['ID'.$num];
  13. /*
  14. echo "<br>ID2[0] =>>> $ID2[0]";
  15. echo "<br>quartier ==>> ".$_POST['ID'.$ID2[0]];
  16. */
  17. $t =$_POST['quartier'.$ID2[0]];
  18. $t2=$_POST['prix12'.$ID2[0]];
  19. $t3=$_POST['prix34'.$ID2[0]];
  20. $t4=$_POST['prix5'.$ID2[0]];
  21. $t5=$_POST['ID'.$ID2[0]];
  22. /*
  23. echo "<br>0 ./ id      ".$t5;
  24. echo "<br>1./ quartier ".$t;
  25. echo "<br>2./ prix12   ".$t2;
  26. echo "<br>3./ prix34   ".$t3;
  27. echo "<br>4 ./prix5    ".$t4;
  28.      */
  29. mysql_query("UPDATE quartier SET quartier='$t', prix12='$t2', prix34='$t3', prix5='$t4' where ID='$t5'" );
  30. }
  31. //echo "<br><br><a href='list_estimation.php'>list_estimation.php</a>";
  32. //echo "<script>document.location.href='list_estimation.php?mode=update'</script>";
  33. header('Location:http://127.0.0.1:4545/list_estimation.php');
  34. ?>


 
j'ai desactivé mes echo de debugage car je ne peux les laisser.  
 
 
Question : dans le header, j'ai vu qu'il valait mieux mettre une url complete, puis je mettre 127.0.0.1. Je suis sur mon serveur local mais apres il sera chez l'hebergeur Online.net, est ce que je serais obligé de changé l'url  ou pourrais je le laissé en 127.0.0.1 ?
 
EDIT : je sais qu'il faudra que je retire les 4545, car je ne serais pas sur le port 4545 sur online.net mais a part ca.


Message édité par weed le 14-08-2005 à 15:18:16
Reply

Marsh Posté le 15-08-2005 à 00:15:24    

2 trucs :
 
- en voyant ton code, c'est absurde de vouloir utiliser JS puisque tu veux forcer une mise à jour de la page, autant le faire directement sur le serveur, ça te fait gagner une étape :)
 
- Pour ta question, y a de chouettes variables en php qui contiennent des tas d'infos sur le script en cours. Dont $_SERVER["SERVER_NAME"] et $_SERVER["SERVER_ADDR"] contenant respectivement le nom du serveur et son adresse IP, ce qui devrait te permettre de régler le problème sans avoir à modifier ton code à chaque changement de serveur :)

Reply

Marsh Posté le 15-08-2005 à 01:36:00    

le js est super utile pour moi car des qu'il y a le moindre souci, je desactive la redicrection et je regarde les resultats des valeur renvoyés car, je ne l'ai pas encore activés ....
 
Donc pour ma part ca sera  
 
javascript pour debugage
puis apres le header en désactivant les echo car on s'est jamais  
puis apres supressions des echos ...
 
 
sinon merci, cela fonctionne ton astuce, pour ceux que cela interresse :
 
 header('Location:http://'.$_SERVER["SERVER_NAME"].':'.$_SERVER["SERVER_PORT"].'/list_history.php');

Reply

Sujets relatifs:

Leave a Replay

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