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

jQuery Discussion :

JQuery fonction de callback non appelée


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 22
    Points
    22
    Par défaut JQuery fonction de callback non appelée
    Bonjour à tous,
    j'utilise JQuery pour faire la connexion et déconnexion de mon site. pour la connexion je n'ai aucun soucis mais pour la déconnexion mon post n'appel pas la fonction de callback voici mon codes
    html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="" rel="logout">deconnexion</a>
    JQuery
    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
     
    $("a[rel='logout']").click(function(){
    			//coBox.lien = $(this).attr("href");
    			$.post( 
    				"/connexion.php",
    				{ action: "logout"}, 
    				function(data)
    				{
    					if(data == "false"){
    						alert("Echec Deconnexion");
    					}
    					else{
    						alert("Au revoir");
    						$(location).attr('href','/');
    					}*/
     
    				}
    			)
    		});
    php :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if ($_POST['action'] == "logout")
    {
    	$delete = session_destroy(); 
    	if (delete) echo "true"; 
    	else echo "false";
    	exit;
    }
    Je précise que la déconnexion est tout de même effectuée.
    Voila si quelqu'un a une idée de mon erreur merci.

  2. #2
    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 640
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    c'est pas success ? au lieu de callback ?

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 22
    Points
    22
    Par défaut
    Dans les tutoriaux que j'ai lu et la doc ils l'appellent des deux manières fonction de callback si la requête a réussi. La requête a du réussir vu que je me fais déconnecter en cliquant sur le lien.

  4. #4
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Bonjour,

    il y a deux erreurs,

    la première, c'est une fin de commentaire qui traine dans le code (*/) (en fin de citation) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(data == "false"){
    	alert("Echec Deconnexion");
    }
    else{
    	alert("Au revoir");
    	$(location).attr('href','/');
    }*/
    La seconde, dans votre page PHP, il manque le $ devant delete:
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if ($_POST['action'] == "logout")
    {
    	$delete = session_destroy(); 
    	if ($delete) echo "true"; // Avant : delete / Après : $delete
    	else echo "false";
    	exit;
    }

    P.S : Pourquoi ne pas écrire directement :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ($_POST['action'] == "logout")
    {
    	echo session_destroy(); 
    	exit;
    }

    ?

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 22
    Points
    22
    Par défaut
    Je viens de changer le 'delete' en '$delete' mais la fonction n'est toujours pas appelée. le '*/' est un oublie car j avais commenté le code en attendant.
    Je fais un echo true ou false pour que la fonction de callback récupère l'état de la déconnexion.

  6. #6
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Si vous faites un alert de "data" dans la fonction, vous avez bien des données?

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 22
    Points
    22
    Par défaut
    En fait je viens de tester ma page avec IE et la fonction marche correctement déconnexion, affichage des alertes et redirection. Mais sous chrome et firefox je n'ai que la déconnexion pas de redirection ni les alertes.
    En fait aussi pour ma connexion je passe par un form et un serialize() et le post se fait suite à un submit? Est-ce que c'est pour cela que cela fonctionne mieux pour la connexion ?

    Voila j'ai trouvé la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="" rel="logout">deconnexion</a>
    sous firefox et chrome le href="" empêchait l'appel de ma fonction callback.
    il faut soit supprimer href soit mettre href="#" et cela fonctionne correctement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" rel="logout">deconnexion</a>
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a rel="logout">deconnexion</a>

  8. #8
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 407
    Points
    1 407
    Par défaut
    Citation Envoyé par fly85 Voir le message
    JQuery
    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
     
    $("a[rel='logout']").click(function(){
    			//coBox.lien = $(this).attr("href");
    			$.post( 
    				"/connexion.php",
    				{ action: "logout"}, 
    				function(data)
    				{
    					if(data == "false"){
    						alert("Echec Deconnexion");
    					}
    					else{
    						alert("Au revoir");
    						$(location).attr('href','/');
    					}*/
     
    				}
    			)
    		});
    php :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if ($_POST['action'] == "logout")
    {
    	$delete = session_destroy(); 
    	if (delete) echo "true"; 
    	else echo "false";
    	exit;
    }
    Bonjour,

    je viens de tester avec ceci :

    JQuery
    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
     
    $(document).ready( function() {
    		$("a[rel='logout']").click(function() {
    $.post("connexion.php", { action: "logout"}, function(data) {
                        if(data == "false"){
                            alert("Echec Deconnexion");
                        }
                        else{
                            alert("Au revoir");
                            $(location).attr('href','/');
                        }
     
                    }
                );
    return false;
    		});
    });
    PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    session_destroy(); 
    ?>
    A voir....

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

Discussions similaires

  1. Curl read callback non appellée
    Par abdo20 dans le forum Réseau
    Réponses: 0
    Dernier message: 30/06/2011, 08h15
  2. $.ajax callback non appelée chez 1and1
    Par gnonpom dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 11/09/2009, 10h06
  3. fonction non appellée ,
    Par totoche dans le forum VB.NET
    Réponses: 5
    Dernier message: 29/08/2007, 09h36
  4. problème avec un appel de fonction de callback de C++ vers C#
    Par surfurax dans le forum Framework .NET
    Réponses: 1
    Dernier message: 29/01/2007, 10h09
  5. Verifier formulaire - fonction non appelée
    Par nerick dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/12/2005, 17h44

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