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 :

Affichage des callback Ajax [AJAX]


Sujet :

jQuery

  1. #1
    Membre chevronné
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 638
    Par défaut Affichage des callback Ajax
    Bonjour et meilleurs voeux à toutes et à tous,


    Suite à une modification de mon code (mais je ne vois pas où) mes messages de retour Ajax ne s'affiche plus.
    En effet via jQuery j'avais intégré des messages de retour en cas de succès ou d'échec de la modification du login dans le compte utilisateur.
    Mais là plus rien ne s'affiche.

    Code javascript : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    /** script permettant la gestion du profil utilisateur pour le pseudo **/
    $(document).ready(function() {
    	// affichage de la boite de dialogue Modifier mon Profil
    	$("#modifierMonProfil").click(function() {
    		$(".modifierProfil").show(); // <div class="modifierProfil">				 
    		// on cache les autres zones
    		$(".contacterAdmin").hide(); 
    		$(".supprimerCompte").hide();
    	}); // fin $("#modifierMonProfil").click()		
    	// modification du pseudo
    	$("#modifPseudo").click(function() {
    		$(".modifierPseudo").show();	
     
    	}); // fin $("#modifPseudo").click()
    	// pour l'annulation de la procédure
    	$(".annuler").click(function() {
    		$('.formErreur').hide();		
    		$(".modifierPseudo").fadeOut("slow");
    	}); // fin $("#annuler").click()
    	// lors de la soumission du formulaire
    	$("#modifier_pseudo").submit(function(event) {
    		event.preventDefault();
    		// pendant la soumission on affiche le loader d'attente Ajax
    		$("#loader").show();		
     
    		var pseudo = $(this).find("input[name=pseudo]").val();		
     
    		// pour l'appel Ajax
    		$.ajax({
    			url: $(this).attr('action'),
    			type: $(this).attr('method'),
    			data: $(this).serialize(), 
    			dataType : 'text', 
    			cache: false,			
    			success: 				
    				function(data){	
    					if(data == "ok") {
    						$(".loader").hide(); // on cache le loader d'attente Ajax
    						$('.inscriptionSent').fadeIn().text("Modification réussie de votre pseudo !");
    						$('.inscriptionSent').fadeOut(5000);
    						$(".modifierPseudo").delay(3000).fadeOut();	
    						$(':input','#modifier_pseudo').not(':submit, :button').val("");
    					} // fin if(data == "ok") 	
    					if(data == "echec") {
    						$(".loader").hide(); // on cache le loader d'attente Ajax
    						$('.formErreur').show().text("Ce pseudo existe déjà pour un compte utilisateur !");
    						$('.formErreur').fadeOut(5000);
    						$("#pseudo").val("");	
    					} // fin if(data == "echec")
    					if(data == "vide") {
    						$(".loader").hide(); // on cache le loader d'attente Ajax
    						$('.formErreur').show().text("Veuillez remplir le champ de saisie du pseudo !");
    						$('.formErreur').fadeOut(5000);
    					} // fin if(data == "vide") 																																
    				} // fin function()					
    		}); // fin $.ajax()
     
    		// on vide les champs du formulaire SAUF le bouton radio et celui de soumission
    		$(':input','#modifier_profil').not(':submit, :button').val('');		
    	}); // fin $("#modifier_pseudo").submit()		
    }); // fin $(document)

    Code html : 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
     
    <div class="modifierPseudo">
    							<form name="modifier_pseudo" id="modifier_pseudo" action="includes/inc_modifierPseudo.php" method="post">
    								<fieldset id='modif_pseudo'>
    									<legend>
    										<img src="img/bulle_48.png" alt="bulle" title="bulle" />
    										<h3>Modifier mon pseudo</h3><br />
    									</legend>
    									<span class="formErreur"></span><br/>	
    									<label for="login">Pseudo </label><em>*</em>
    									<input type="text" id="pseudo" name="pseudo" size="25" /><br />
    									<span class="loader" style="display:none;"><img src="img/loader.gif" alt="loader" /></span>
    									<span class="inscriptionSent"></span><br/>
    									<input type="submit" name="envoyer" class="envoyer" value="ENVOYER" />
    									<!-- mettre class au lieu de id qui est unique -->
    									<input type="button" name="annuler" class="annuler" value="ANNULER" />
    								</fieldset>
    							</form><!-- modifier_pseudo -->
    						</div><!-- modifierPseudo -->

    Merci d'avance.
    Transact.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Aucun des id ou classes de ton code jQuery n'existe dans le HTML...
    Autant utiliser la fonction magicallyGuessWhatIWantToDo().

    Mais bon, c'est à toi de faire ces vérifications de base avant de poster !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre chevronné
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 638
    Par défaut
    Je n'ai pas communiqué l'intégralité du code HTML mais uniquement la partie imputant le code jQuery.

  4. #4
    Membre chevronné
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 638
    Par défaut
    Après modification, le loader d'attente Ajax s'affiche mais ne s'arrête pas après le soumission du formulaire.
    Apparemment je ne parviens pas à récupérer et à afficher le retour Ajax du serveur.

  5. #5
    Membre chevronné
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 638
    Par défaut
    Quand j'ajoute un console.log("blabla"); rien ne s'affiche dans la console de firebug donc le callback n'est pas récupéré.

  6. #6
    Membre chevronné
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 638
    Par défaut
    Le même code fonctionne pour la modification de l'email et du mot de passe mais pas pour le pseudo.
    En fait il faut vider l'élément d'affichage ou quelque chose de ce genre.
    Pourriez-vous m'aider je ne m'en sors pas.

  7. #7
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    Le même code fonctionne pour la modification de l'email et du mot de passe mais pas pour le pseudo.
    ne serait-ce pas alors la modification du pseudo qui plante coté serveur ?
    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 !

  8. #8
    Membre chevronné
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 638
    Par défaut
    La modification du pseudo s'effectue bien en Base de données, mais c'est le réponse Ajax du serveur qui n'est pas traité correctement par le jQuery.

    Code php : 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
    31
     
    <?php	
    	session_start();
    	header('Content-Type: text/html; charset=UTF-8');	
    	include_once 'inc_connexion.php';
    	$conn = opendb_conn();
    	/** script permettant la modification du pseudo dans le profil de l'utilisateur **/		
    	$pseudo = isset($_POST['pseudo'])?$_POST['pseudo']:null; // pour tester l'existence et que le champ est non vide
     
    	// on vérifie que le pseudo n'est pas déjà présent en Base
    	$sql = "select count(*) as nbr from membres where pseudo ='".$_POST['pseudo']."'";
    	$stmt=$conn->prepare($sql);
    	$stmt->execute();
    	// creation de la variable $result recuperant les lignes et les retournant EN TANT que tableau associatif
    	$result=$stmt->fetch(PDO::FETCH_ASSOC);		
    	//print_r($result); // utiliser UNIQUEMENT pour le test ... MAIS ENLEVER pour permettre le résultat de l'appel Ajax
     
    	// Traitement pour le pseudo
    	if(!empty($_POST['pseudo'])) {		
    		if(($result['nbr']) != 0) { // si le nombre d'occurrence du résultat de la requête n'est pas nul alors ...			
    			echo "echec"; // la réponse du serveur pour le traitement Ajax		
    		} else { // sinon on effectue la mise à jour en Base
    			$sql = "UPDATE membres SET pseudo = '".$_POST['pseudo']."' where pseudo = '".$_SESSION['pseudo']."'";
    			$stm = $conn->prepare($sql);
    			$stm->execute();
    			echo "ok"; // la réponse du serveur pour le traitement Ajax
    		}
    	} else {
    		echo "vide"; 
    	} // fin if(!empty($_POST['pseudo'])) ... else		
    ?>

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonsoir,
    a tester avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(data.indexOf('ok') > -1){
      //...
    }

  10. #10
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    elle y est la ligne vide au début de ton code ??
    si c'est le cas ta réponse ajax est "\nok" et pas "ok", d'ou le fait que tu n'aies pas l'égalité lors du teste en retour
    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 !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/10/2010, 07h15
  2. [AJAX] Affichage des <br/>
    Par Jonathan.b dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/01/2008, 14h58
  3. [AJAX] [Struts] Pas d'affichage des boutons lors du raffraîchissement
    Par AnneB dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/07/2007, 13h29
  4. [AJAX] creation d'un tableau d'affichage des données
    Par highman dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 20/04/2007, 16h30

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