Afficher un PopUp à la fin d'un chargement [Résolu]

Signaler
-
 lzermin -
Bonjour,

J'ai un site internet avec un bouton qui permet de rafraichir des etats mails (distribué, ouvert, ...) sauf que la page met du temps à charger comme le rafraichissement prend du temps, j'aimerai afficher un message, un popup par exemple qui s'afficherai pendant peut être 5 secondes à la fin du chargement avec écrit par exemple "Rafraichissement des états mails terminés".

3 réponses

Messages postés
33016
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 juin 2021
3 574
Bonjour,

Le souci, c'est que tu mets ça un peu n'importe où ...

Si tu veux que la popup d'affiche à la fin du traitement..... il faudrait déjà nous montrer avec quel code tu fais ce traitement...
Sachant que si il se fait dans le fichier checkEmail.php ... c'est dans ce fichier qu'il faut mettre la popup ...




Mon checkEmail.php contient seulement ce qui me permet de voir si un mail a été ouvert ou délivré, ...

Ce bouton ou je veux mettre ce popup me permet de rafraichir la page pour que par exemple si un mail était en délivré et qu'il a été ouvert, il passera en ouvert.

Ce bouton est dans mon header et c'est juste un lien avec une icon mais quand je clique dessus, je reste sur ma page de licence, ça ne m'envoie pas sur la page checkMail, et dans ma page checkmail j'ai uniquement un code php qui me permet d'aller chercher les infos (ouvert, délivré, ...) sur mailjet et j'ai ensuite des requêtes qui permettent d'envoyer ces infos dans ma base de donnée.

Donc je pense que j'ai juste à faire ça dans mon header et non dans ma page checkEmail, mais dans ce code où il faut mettre l'URL de la page, je sais pas si je dois mettre checkEmail ou si je dois mettre la page où je suis (comme je n'entre pas dans checkEmail) mais j'ai essayé les deux cas et dans les deux cas ça n'a pas marché..
Messages postés
33016
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 juin 2021
3 574 > lzermin

bouton qui permet de rafraichir des etats mails (distribué, ouvert, ...)

Et ce bouton.. il déclenche quoi exactement si ce n'est pas une redirection ? Un code Javascript ? Code qui fait peut-être un appel ajax ??

Il faudrait vraiment que tu nous montres l'intégralité de ton code si tu veux avoir de l'aide... par ce que là, avec si peu d'informations.. difficile de t'apporter une réponse !
Messages postés
16107
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 juin 2021
868
bonjour,
sais-tu comment faire cela en HTML?
>
Messages postés
16107
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 juin 2021

						<a href="checkEmail.php" onLoad="ouvrir_popup()"><img src="icones/modifier1.png" style="width:30px"></a>
						
Messages postés
16107
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 juin 2021
868 > lzermin
as-tu testé ceci?
>
Messages postés
16107
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 juin 2021

Je viens d'essayer et ça ne fonctionne toujours pas, est ce que ça peut venir du fait que je mette mon ouvrir_popup dans une balise a pour un lien et non dans une balise body comme sur le lien que tu m'as envoyé ?
> lzermin
Ah moins que je dois mettre la fonction du popup dans ma page chekEmail
Merci à toi aussi yg_be :)
Voila mon code de la page checkEmail :

<?php
include('pdo.php');



        require 'mailjet/vendor/autoload.php';
        use \Mailjet\Resources;

    $stmt = $pdo->prepare('SELECT * FROM statusEmails where status in ("sent","queued")');
    
	$stmt->execute();
    $status = $stmt->fetchAll();

    foreach($status as $res)
    {

        $id = $res['messageId'];
        

        $mj = new \Mailjet\Client('bce86e9943d59ded740db2a28c2f3083', 'a1db2837eee29a897454015828aba390');
        $response = $mj->get(Resources::$Message, ['id' => $id]);
        $response->success();
        foreach($response->getData() as $res2)
        {
            $dateT = str_replace('T',' ',$res2['ArrivedAt']);
            $date = str_replace('Z','',$dateT);
            $status = $res2['Status']; 
        }
       

               $stmt = $pdo->prepare("UPDATE statusEmails SET status = :status, date = :date  WHERE id = :id");
               $stmt->bindValue(':id', (int)$res["id"], PDO::PARAM_INT);
               $stmt->bindValue(':status', $status, PDO::PARAM_STR);
               $stmt->bindValue(':date', $date, PDO::PARAM_STR);
               $stmt->execute();
               $stmt->closeCursor();

               $table = $res['categorie'];

               if($table == 'clients')
               {
                   //pour avoir les coordonnées du client
                    $stmt = $pdo->prepare('SELECT * FROM clients WHERE dernierMailjetId = :dernierMailjetId');
                    $stmt->bindValue(':dernierMailjetId', $id, PDO::PARAM_STR);
                    $stmt->execute();
                    $client = $stmt->fetch();
                    
                    
                    if(!empty($client))
                    {
                        var_dump('mail1');
                    
                        $stmt = $pdo->prepare("UPDATE $table SET dernierStatus = :dernierStatus WHERE id = :id");
                        $stmt->bindValue(':id', (int)$res["idCat"], PDO::PARAM_INT);
                        $stmt->bindValue(':dernierStatus', $status, PDO::PARAM_STR);
                        $stmt->execute();
                        $stmt->closeCursor();
                    }
                    else {
                        
                        $stmt = $pdo->prepare("UPDATE $table SET dernierStatus2 = :dernierStatus WHERE id = :id");
                        $stmt->bindValue(':id', (int)$res["idCat"], PDO::PARAM_INT);
                        $stmt->bindValue(':dernierStatus', $status, PDO::PARAM_STR);
                        $stmt->execute();
                        $stmt->closeCursor();
                        
                    }
                    

               }
               else {
              
               $stmt = $pdo->prepare("UPDATE $table SET dernierStatus = :dernierStatus WHERE id = :id");
               $stmt->bindValue(':id', (int)$res["idCat"], PDO::PARAM_INT);
               $stmt->bindValue(':dernierStatus', $status, PDO::PARAM_STR);
               $stmt->execute();
               $stmt->closeCursor();
                    
                
            }




    }


    header('Location:'.$_SERVER['HTTP_REFERER']);
     ?>
>
Messages postés
33016
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 juin 2021

En faisant ça, à la fin du chargement je suis redirigé sur checkMail.php et le message s'affiche bien donc oui c'est que j'ai un problème entre le message et la redirection
Messages postés
33016
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 juin 2021
3 574 > lzermin
Dans ce cas là, fait la redirection en Javascript et non en PHP.
>
Messages postés
33016
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 juin 2021

D'accord mais comment faire pour que la redirection retourne sur la page d'avant ? Car j'ai 2 endroits (donc 2 URL différent) où mon bouton apparaît et je dois rediriger vers ma page d'avant pour voir le changement.
Messages postés
33016
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 juin 2021
3 574 > lzermin
Essaye ça
echo "<script>alert('FINI');
window.location.replace('".$_SERVER['HTTP_REFERER']."');
</script>";
>
Messages postés
33016
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 juin 2021

ça fonctionne nickel parfait merci tu me sauves la vie je galérais beaucoup trop merci je t'aime