IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Afficher popup après connexion en ajax


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Points : 45
    Points
    45
    Par défaut Afficher popup après connexion en ajax
    Bonjour,

    Sur mon site cakePHP je viens de mettre une authentification en AJAX.

    Lorsque le retour de la requete de login est OK je fais un window.location.href et une fois la page chargée j'aimerais afficher un popup de type toastr pour afficher différentes informations.
    Voici mon bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $.post(linkAction,phpData,function(data){
                        if(data==false){
                             swal("Erreur authentification","Veuillez vérifier votre mot de passe","error") 
                        }else{
                            //welcome
     
                                toastr.options = {
                                            closeButton: true,
                                            progressBar: true,
                                            timeOut: 10000,
                                            onclick: null
                                        };
                                // Display a success toast, with a title
                                window.location.href=basepath+"/book";
                                toastr.success('Bienvenue sur app',data['nom_complet'])
                        }
     
                },"json");

    le problème c'est que le comportement est asynchrone donc la page commence à charger, le popup toastr s'affiche mais des que la page s'affiche le popup disparait... je ne sais pas trop comment faire

    J'aimerai vraiment pouvoir afficher des popups avec différentes informations une fois que la personne s'est connectée... auriez vous une idée ??

    Merci par avance

  2. #2
    Membre éclairé
    Avatar de LearningBoy
    Homme Profil pro
    Ingénieur Logiciel - Fullstack JavaScript
    Inscrit en
    Août 2017
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Logiciel - Fullstack JavaScript
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2017
    Messages : 73
    Points : 664
    Points
    664
    Par défaut
    Bonjour @rockt13,

    Si j'ai bien compris l'idée est de pouvoir afficher le toastr seulement si la page est correctement chargé.

    Est-ce que si tu exécute ton code dans un widow.onload cela pourrait fonctionner ?

    Voici un exemple d'utilisation donné sur ce lien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    window.onload = function() {
      init();
      doSomethingElse();
    };
    Bien cordialement,

    Simon de AwesomeAngular.
    Découvrez "Angular, ECMAScript 6 et TypeScript" pour vos futurs développements web...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Points : 45
    Points
    45
    Par défaut
    Salut Simon,

    Je ne sais pas si je peux utiliser cela car j'ai peur qu'a chaque refresh de la page le onload sera de nouveau appelé ?

    Dans mon cas il faut que les popups soient lancés uniquement après la première connexion, je pensais éventuellement utiliser un timeout pour déclencher les popups...mais la difficulté c'est de déterminer la bonne durée....

    à moins qu'il y ait une solution plus élégante ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     window.location.href=basepath+"/book";
      toastr.success('Bienvenue sur app',data['nom_complet'])
    Si tu changes de page ... js meurt avec la page, la ligne qui suit le location href ne sera jamais interprétée ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Points : 45
    Points
    45
    Par défaut
    ok... du coup quelles alternatives me reste-t-il ?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    lancer le script sur la page qui s'ouvre sur le onload de
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Points : 45
    Points
    45
    Par défaut
    Ok,
    je viens en même temps de découvrir les "sessionStorage"
    je vais donc essayer de faire quelque chose comme ceci sur le onload:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (sessionStorage.getItem('firstLogin') !== 'true') {
     toastr.sucess("blablalb");
    sessionStorage.setItem('advertOnce','true');
    }
    Je vous fait un retour des que j'ai testé
    A+

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    oui soit en mettant le message en sessionStorage ou encore en passant un paramètre dans l'url ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Points : 45
    Points
    45
    Par défaut
    Voici la solution mis en place

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    $(function() {        
            var basepath=$("#basepath").attr("data-path");
            toastr.options = {
                    closeButton: true,
                    progressBar: true,
                    timeOut: 10000,
                    onclick: null
                }; 
     
            if (sessionStorage.getItem('advertOnce') !== 'true') {
     
                $.post(basepath+"/Users/usersInfoAjax/",{},function(data){
     
                    //bienvenue popup
                    toastr.success('Bienvenue sur le logiciel', data["nom"]);
     
                    //recrutement en cours
                    if(data["nbrecrue"]>0){                           
                        toastr.warning('Vous avez '+ data["nbrecrue"] +' recrutements en cours.\nPouvez vous renseigner leurs status?', 
                                        'Recrutements',
                                        {timeOut: 15000}
                                        );      
                    }  
     
                },"json");
     
                sessionStorage.setItem('advertOnce','true');    
     
            }
    });
    Un sessionStorage.clear() est fait avant l'appel au login .$post()...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher popup après une action sur dropdown list
    Par gub156 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2016, 15h35
  2. [ZF 1.11] Afficher popup javascript après validation formulaire et avant redirection
    Par absot dans le forum Zend Framework
    Réponses: 1
    Dernier message: 19/12/2011, 11h15
  3. Afficher un DIV apres une action ajax
    Par vince62fr dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/06/2011, 22h26
  4. afficher 2chiffres après la virgule??
    Par bossun dans le forum ASP
    Réponses: 4
    Dernier message: 04/11/2004, 09h58
  5. Réponses: 4
    Dernier message: 19/03/2004, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo