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 :

Submit d'un formulaire [AJAX]


Sujet :

jQuery

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 57
    Points : 34
    Points
    34
    Par défaut Submit d'un formulaire
    Bonjour à tous,

    Je galère depuis hier sur un problème et malgré mes recherche sur les forums y compris ici ou j'ai trouvé un cas très proche du mien j'arrive pas a faire fonctionner.

    Voila j'ai un formulaire avec simplement un champ et un bouton submit.

    Pour controler si la valeur saisie dans le champ n'existe pas déja je lance une vérif en ajax.

    Le problème c'est que je ne peux pas lancer sur onchange puisque quand la personne change de champ c'est pour cliquer sur le bouton de validation.

    J'ai donc fait mon contrôle sur submit, mais la validation se fait à chaque fois que la valeur renvoyée soit vrai ou fausse.

    Quand la valeur existe j'ai juste le temps de voir le champ qui se met en rouge et le message d'erreur et j'arrive sur la page appellée.

    Je vous mets le dernier code jquery

    J'ai même essayé de mettre ajax en synchrone pour bloquer tant que la requête était en cours pour éviter que la validation formulaire se fasse pendant ce labs de temps.

    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
     
     
     <script language="JavaScript">
     $(document).ready(function() {
    $('#form1').submit(function(){
     
     
    //On récupère le pseudo saisi par l'utilisateur
     var immat=$('#immat').val();
     
     //Passage de la valeur au du paramètre qu'on récupèrera dans php
     var data ={immat: immat}; 
     
      $.ajax({
                    async: false,
                    url: 'test_immat.php',
                    type: 'POST',
                    data: data,
                    success: function(valeurRetourne) {
                             if(valeurRetourne=="echec") {
                                         $("#msg").fadeIn(1000).text("Immatriculation inexistante");
                                  $("#immat").css("border-color","#f55");
                                  $("#immat").css("background-color","#fcc");
                            var ret=false;
                            }
                             else
                            {var ret=true;}
                    }
            });
            return ret
       });
       });
    </script>
    Je pense pas que ce soit utile de vous mettre le code du formulaire.

    Merci d'avance

  2. #2
    Membre habitué
    Avatar de Mell
    Femme Profil pro
    Développeuse Front-end
    Inscrit en
    Janvier 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 107
    Points : 143
    Points
    143
    Par défaut
    Est ce que, quand tu fais un console.log(valeurRetourne) il t'arrive d'avoir "echec" ? En gros, est-ce que tu rentres dans ton if ?

    Parce que si ce n'est pas le cas, le problème pourrait venir de ton PHP

  3. #3
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Ta variable ret est définie dans la fonction de rappel de la requête AJAX.
    Du coup, elle n'est pas accessible en dehors de cette fonction de rappel et return ret provoque une erreur.
    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

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    Rebonjour,

    Et alors je peux contourner le problème comment?

    Car le but c'est bien justement de valider en fonction du retour ajax..

    Merci

  5. #5
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Ben... c'est implicite dans ma réponse.

    Si ta variable n'est pas accessible dans le scope souhaité, déclare-la dans le bon scope, c'est-à-dire dans le callback de submit directement
    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

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    C'est bon quelqu'un m'a solutionné le problème, c'est le formulaire qui se validait en boucle.


    Voila le code ça peut toujours aider quelqu'un..

    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
    39
    40
    <script language="JavaScript">
    $(document).ready(function() {
        var ret = false;
        $('#form1').submit(function(event){
    	if(!ret) {
    	    //Empeche la validation du formulaire
    	    event.preventDefault();
     
    	    //On récupère le pseudo saisi par l'utilisateur
    	    var immat=$('#immat').val();
     
    	    //Passage de la valeur au du paramètre qu'on récupèrera dans php
    	    var data ={
    		immat: immat
    	    };
     
    	    $.ajax({
    		async: false,
    		url: 'test_immat.php',
    		type: 'POST',
    		data: data,
    		success: function(valeurRetourne) {
    		    if(valeurRetourne=="echec") {
    			$("#msg").fadeIn(1000).text("Immatriculation inexistante");
    			$("#immat").css("border-color","#f55");
    			$("#immat").css("background-color","#fcc");
    			ret=false;
    		    }
    		    else { //Si les valeurs sont corrects, on valide envoie le formulaire.
    			ret=true;
    			$('#form1').submit();
    		    }
    		}
    	    });
    	}
        });
    });
     
     
    </script>
    Merci de votre aide

  7. #7
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Si tu déclares deux fois la même variable dans deux scopes différents, alors tu auras deux variables différentes !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var test1 = "foo",
        test2 = "bar",
        test3 = "fooBar";
    function checkTest(){
        test1 = "toto";
        var test2 = "tata";
        alert("test1 : " + test1 + " test2 : " + test2 + " test3 : " + test3);
    }
    checkTest();
    alert("test1 : " + test1 + " test2 : " + test2 + " test3 : " + test3);
    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

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

Discussions similaires

  1. Submit d'un formulaire et touche entrée
    Par titalex dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/06/2006, 12h09
  2. <html:submit> d'un formulaire
    Par DanZzz dans le forum Struts 1
    Réponses: 3
    Dernier message: 07/06/2006, 16h10
  3. deux bouton submit dans même formulaire
    Par sansouna24 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 29/05/2006, 11h03
  4. plusieurs boutons submit sur un formulaire
    Par clement42 dans le forum Struts 1
    Réponses: 1
    Dernier message: 12/05/2006, 10h42
  5. Un submit pour plusieurs formulaires
    Par beufa dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/11/2005, 15h51

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