Rafraichir une page aprés la fermeture d'une popup !

Eléphant du PHP | 259 Messages

23 juil. 2007, 13:14

Bonjour,

J'ai une page pour modifier des données (accueil.php), sur cette page j'ai un lien modifier qui ouvre une popup et qui affiche d'autres données (je l'ai ai mis sur une page à part sinon ma page serait trop chargé).
Donc dans la popup je modifie les données, je clique sur submit, la popup de ferme grace à

Code : Tout sélectionner

<form onsubmit=self.close() action="" ></form>
Et donc je revient sur la 1ere page (accueil.php). J'aimerais que la page se rafraichit en affichant les données modifier.

Donc dans la page accueil.php j'ai mis ce code pour rafraichir la page, :
if(!isset($_GET['refresh']))
{ 
?>
<meta http-equiv="Refresh" content="0;url=accueil.php?refresh=no">
<?
}
Seuleument la page se raffraichit la 1ere fois que je vais dessus ensuite je clique sur modifier, la popup s'ouvre et quand elle se ferme je revient sur accueil.php mais le rafraichissement ne s'éxécute pas car il a était éxécuté la 1ere fois!
Et quand je met une redirection avec meta aprés l'éxécution des requête ça ne fait rien, surement à cause du

Code : Tout sélectionner

onsubmit=self.close()
Comment faire pour rafraichir la page aprés la fermeture de la popup?

ViPHP
ViPHP | 928 Messages

23 juil. 2007, 13:23

Salut, essaie avec

Code : Tout sélectionner

onsubmit="opener.document.history.go(0); self.close()"

Eléphant du PHP | 259 Messages

23 juil. 2007, 13:40

ça ne marche pas non +.. ça ne ferme pas la popup.

jed
Eléphant du PHP | 218 Messages

23 juil. 2007, 14:14

Code : Tout sélectionner

onclick = "window.parent.opener.location.reload();"
Essaies ça ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 juil. 2007, 14:21

Attention : le code placé dans le onSubmit ou dans le onClick s'exécute avant (voire en parallèle pour le second) l'envoi du formulaire... les données risquent de ne pas encore avoir été envoyées quand la fenêtre se fermera. Par ailleurs la page parente risque de se recharger avant que le traitement n'ait été terminé et donc de ne pas être à jour.

La meilleure solution reste d'envoyer normalement le formulaire, et dans la page qui effectue le traitement, une fois que celui-ci est terminé, ajouter les quelques lignes de code javascript qui permettent de recharger la page parente (avec un .reload(true) pour éviter le cache), et refermer la popup :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 259 Messages

23 juil. 2007, 15:02

Merci :wink:

Ca marche nickel avec :

Code : Tout sélectionner

<body onunload="window.opener.location.reload(true);"></body>