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 :

Gestion du retour ajax [AJAX]


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Gestion du retour ajax
    Bonjour,

    Alors voilà je suis en trin de faire un formulaire d'inscription, d'habitude mon script fonctionne mais là, pas moyen.

    donc je précise que l'enregistrement en DB ce passe bien et mon fichier de traitement PHP me renvoi bien echo 'regSuccess'; en cas de succès
    Le problème vient de mon retour ajax donc

    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
    31
    32
    33
    34
    35
    36
    37
    38
     
    $('#form-register-first').submit(function(){
    	var email = $('#input_email').val();
    	var data = $('#form-register-first').serialize();
    	$.ajax({
    		type : 'POST',
    		url  : 'includes/functions/eAccount.php',
    		data :  data,
    		beforeSend : function(){
    			$('#regError').fadeOut();
    			$('#regLoader').fadeIn();
    			$('#form-register-first').addClass('hidden');
    			$("#btn-submit-register-first").html('<span class="glyphicon glyphicon-transfer"></span> Traitement en cours ...');
    		},
    		success : function(response){
    			if(response==='regSuccess'){
    				setTimeout(function(){
    					$('#regLoader').fadeOut();
    					$('#form-btn-2-step-pop').removeClass('btn-circle-disabled');
    					$('#form-btn-3-step-pop').addClass('btn-circle-disabled');
    					$('#form-btn-2-step-pop').addClass('btn-circle');
    					$('#form-register-second').removeClass('hidden');
    					document.getElementById('reMail').value = email;
    					$('html, body').animate({scrollTop:0}, 500, 'linear');
    				},500);
    			}
    			else{
    				$('#regError').fadeIn(500, function(){
    					$('#regError').html('<div class="alert alert-danger"><span class="glyphicon glyphicon-info-sign"></span> &nbsp; '+response+' </div>');
    					$('#form-register-first').removeClass('hidden');
    					$('#btn-submit-register-first').html('<span class="glyphicon glyphicon-log-in"></span> &nbsp; Recommencer');
    					$('html, body').animate({scrollTop:0}, 500, 'linear');
    				});
    			}
    		}
    	});
    	return false;
    });
    Quand j'ai une erreur, il m'affiche bien l'erreur mais quand j'ai 'regSuccess' de renvoyé, il m'affiche bien le regSuccess en alert, mais aussi dans mon div
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#regError').html('<div class="alert alert-danger"><span class="glyphicon glyphicon-info-sign"></span> &nbsp; '+response+' </div>');
    et il ne lance absolument pas le reste de mon 'regSuccess'

    Merci de votre aide sa fait 2 heures que je cherche d'ou vient mon problème...

  2. #2
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Bon bah j'ai un autre problème.
    Il semblerait que aucunes de mes fonctions ne fonctionne en retour...

    Je viens de terminer un script ajax pour le login et coté PHP j'ai la bonne réponse, mais coté site, rien ne ce passe...
    PHP me renvoi bien logSuccess mais coté script de retour aucune réaction,
    JE l'ai fais passé en json mais j'ai le meme résultat...

    Je n'y comprend rien, je n'ai jamais eu ce problème...

    j'utilise ajax depuis plusieurs années, je n'ai jamais rencontré ce type de problèmes...

    Je vous met le script du login :

    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
     
    $('#form-login-top').on('submit', function() {
    	var data = $('#form-login-top').serialize();
    	$.ajax({
    		type: 'POST',
    		url: 'assets/functions/eAccount.php',
    		data: data,
    		dataType: 'json',
    		success :  function(json){
    			if(json.response == "logSuccess"){
    				setTimeout(function(){document.location.href ='index.php?logSuccess=1'},2000);
    			}
    			else{
    				$("#logError").fadeIn(2000, function(){
    					$("#logError").append('<div class="alert alert-danger"><span class="glyphicon glyphicon-info-sign"></span> &nbsp; '+data+' </div>');
    					$(".btn-login-top").append('<span class="glyphicon glyphicon-log-in"></span> &nbsp; Recommencer');
    					$('html, body').animate({scrollTop:0}, 500, 'linear');
    				});
    			}
    		}
    	});
    	return false;
     
    });
    et php :

    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
     
    if(isset($_POST['emailLogin']) && isset($_POST['passwordLogin'])){
    	$passHash = $account->encryptPassword($_POST['emailLogin'],$_POST['passwordLogin']);
    	$checkLogin = $account->check_login($_POST['emailLogin'],$passHash);
    	if($checkLogin=='yes'){
    		$response = 'logSuccess';
    		if (!isset($_SESSION)) {
    			session_start();
    		}
    		$_SESSION['ruserco'] = $_POST['emailLogin'];
    	}
    	else{
    		$response = 'Une erreur interne c\'est produite.';
    	}
    	header('Content-Type: application/json');
    	echo json_encode(['response' => $response]);
    }

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    tu as une erreur ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		$response = 'Une erreur interne c\'est produite.';
    On écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		$response = 'Une erreur interne s\'est produite.';


    Pour le reste, à toi de faire un minimum de DEBOGAGE DE BASE :
    • mettre des alert(...); des log();...
    • consulter la console d'inspection (F12 -> Console)
    • ...


    Comme on n'a qu'une partie du code, on ne peut pas tester.
    Et l'erreur peut très bien provenir d'ailleurs (fichier JavaScript avec une erreur, donc qui plante tout le reste...)

  4. #4
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Bonjour, merci pour ta réponse, j'ai corrigé le S lol.

    Pour infos, j'ai fais pas mal de tests et la seul erreur que j'ai c'est du fichier jquery qui me met : [Violation] 'readystatechange' handler took 437ms

    c'est là le problème je pense mais du coup sa ne viendrait pas de mon code...

    J'ai aussi testé sur internet explorer et firefox, sa me fait la même chose...

    Quand je met en echo simple dans php il me renvoi bien l'echo dans le success et c'est bien le logSuccess ou regSuccess... Mais là ou sa plante, c'est dans le success, si je met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(retour==='regSuccess') {alert ('success');} else {alert ('error');}
    il ne me renvoi rien du tout

  5. #5
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2014
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Bon bah j'ai trouvé mon problème, il vient de mon setTimeout... je vais revoir sa...

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

Discussions similaires

  1. Gestion du retour AJAX en prod
    Par Sg4488 dans le forum AJAX
    Réponses: 6
    Dernier message: 25/11/2015, 08h12
  2. Réponses: 8
    Dernier message: 13/10/2015, 09h19
  3. lancer fonction sur retour ajax
    Par jyuzakumo dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 03/08/2008, 22h52
  4. [AJAX] Retour AJAX dans variable PHP
    Par mulot49 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/06/2007, 13h00
  5. [MySQL] Gestion des retour à la ligne
    Par Husqvarna dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/10/2005, 10h14

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