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 :

Le formulaire n'envoie pas les erreurs


Sujet :

jQuery

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Points : 90
    Points
    90
    Par défaut Le formulaire n'envoie pas les erreurs
    Bonjour,

    Apres un enorme effort, me voila je fais mon premier code Ajax + jQuery de verification des champs d'un formulaire, je voudrais savoir pour en cliquant sur le bouton submit, le formulaire n'envois pas les erreurs en cas de return false:

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    <html dir="rtl">
    <head>
    <style type="text/css">
    #name, #username, #email {
            border-color: #FF0000;
            border-style: solid;
            border-width: 1px;
            border-collapse: collapse;
            -moz-border-radius: 5px;
    }
     
    #label01 {
            width: 100px;
            display:block;
            float: right;
    }
     
    .frm_fields {
            padding: 5px;
    }
     
    input:focus {
          background: #fc9fff;  
    }
     
    .CurFocus {
    background: #fdecb2;
    width: 800px;
    }
    </style>
     
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
    <script src="jquery.js" type="text/javascript"></script>
     
    <script type="text/javascript">
    $(document).ready(function(){
     
    $("#frm_login :text").focus(function(){ // quand on met la souris au input de la form frm_login
     
            $(this).parent().addClass('CurFocus'); // on ajoute le CurFocus a frm_fields afin de combiner les 2 class
            $(this).parent().find('.info').html('&nbsp;&nbsp;<img src="info.png" width="20" height="20" align="absmiddle"> Message ici'); // on cherche info afin d'ajouter le code HTML
            $(this).parent().find('.eMsg').html(''); // on ecrase le message d'erreur
            $(this).parent().find('.sMsg').html(''); // on ecrase le message de success
            $(this).parent().find('.sAvailable').html(''); // on ecrase le message de success de l'availability
     
     
     
                                            }).blur(function(){ // quand on met la souris au input de la form frm_login
            $(this).parent().removeClass('CurFocus'); // on ajoute le CurFocus a frm_fields afin de combiner les 2 class
            $(this).parent().find('.info').html(''); // on cherche info afin de l'ecraser et la vider
     
     
     });
     
     
            // on determine des variables pour les inputs
            var frm_login = $("#frm_login");
            var name = $("#name");
            var username = $("#username");
            var email = $("#email");
     
     
            // on procede a la verification des champs
            // Nom
            function check_name () {
     
                    if (name.val().length < 5)
                    {
                            $(this).parent().find('.eMsg').html('<img src="error.png" width="20" height="20" align="absmiddle"> Le nom comporte moins de 5 caracteres!');
                    $(this).parent().find('#name').css(
                            "border-color", "#FF0000",
                            "border-width", "1px"
                              );
     
                            return false;
                    }
                    else
                    {      
                            $(this).parent().find('.sMsg').html('<img src="success.png" width="20" height="20" align="absmiddle">');
                    $(this).parent().find('#name').css(
                            "border-color", "#badfac",
                            "border-width", "1px"
                              );
                            return true;
                    }
            }
     
     
     
                    // Username
            function check_username () {
     
                    if (username.val().length < 5)
                    {
                            $(this).parent().find('.eMsg').html('<img src="error.png" width="20" height="20" align="absmiddle"> Le pseudo comporte moins de 5 caracteres!');
                    $(this).parent().find('#username').css(
                            "border-color", "#FF0000",
                            "border-width", "1px"
                              );
     
                            return false;
                    }
                    else
                    {
                    $(".sAvailable").html('<img src="loading.gif" width="20" height="20" align="absmiddle"> Checking availability');       
     
                            // on doit verifier la valdite du pseudo
                            //Récupération des valeurs du formulaires
                    var name_val            = $("#name").val();
                    var username_val        = $("#username").val();
                    var dataString  = 'name=' + name_val + '&username=' + username_val;  
     
            $.ajax({
     
            type: 'POST',
            url: 'check_availability.php',
            data : dataString,
     
            success: function(response)
                    {  
                                    if (response != 'ok')
                    {
                            $(this).parent().find('.eMsg').html('<img src="error.png" width="20" height="20" align="absmiddle"> Le pseudo que vous avez choisis est deja en utilisation!');
                            $(".sAvailable").html('');
     
                    $(this).parent().find('#username').css(
                            "border-color", "#FF0000",
                            "border-width", "1px"
                              );
     
                            return false;
                            }
                            else
                            {
     
                                    $(".sAvailable").html('');                     
                                    $(".sAvailable").html('<img src="success.png" width="20" height="20" align="absmiddle"> Le pseudo <b>' + username_val + '</b> est disponible');
     
                    $(this).parent().find('#username').css(
                            "border-color", "#badfac",
                            "border-width", "1px"
                              );
                            return true;
     
                            }
                            }
                            });
     
                            return true;
     
     
                    } // end else
                    } // end username_check function
     
            name.blur(check_name);
            username.blur(check_username);
     
            // en gros, la soumission de la form
            frm_login.submit(function(){
                    if(check_name() & check_username())
                            return true;
                    else
                            return false;
            });
     
     
     return false;
     }); // end DOM function
     
    </script>
     
     
    </head>
    <body>
    <?php
    include 'site_vars.php';
     
        echo '<form name="frm_login" id="frm_login" action="#" method="POST">';
        echo '<div class="frm_fields">';
        echo '<label for="name" id="label01">'.$name_var.'</label>';
        echo $name_input;
        echo '<span class="info"></span>'; // pour afficher les infos
        echo '<span class="eMsg"></span>'; // en cas d'erreur
        echo '<span class="sMsg"></span>'; // en cas de success
        echo '</div>';
     
        echo '<div class="frm_fields">';
        echo '<label for="username" id="label01">'.$username_var.'</label>';
        echo $username_input;
        echo '<span class="info"></span>'; // pour afficher les infos
        echo '<span class="eMsg"></span>'; // en cas d'erreur
        echo '<span class="sMsg"></span>'; // en cas de success
        echo '<span class="sAvailable"></span>'; // en cas de validite
        echo '<span class="Checking"></span>'; // en cas de verification
     
        echo '</div>';
     
        echo '<div class="frm_fields">';
        echo '<label for="email" id="label01">'.$email_var.'</label>';
        echo $email_input;
        echo '<span class="info"></span>'; // pour afficher les infos
        echo '<span class="eMsg"></span>'; // en cas d'erreur
        echo '<span class="sMsg"></span>'; // en cas de success
        echo '</div>';
     
        echo '</span>';
     
        echo $submit_var;
     
        echo '</form>';
    ?>
     
    </body>
    </html>
    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
    Je crois que pour la compréhension complète de ton problème il nous manque les éléments du formulaire ? $submit_var par exemple

    Pour faire une vérification sur le submit, la methode classique consiste à utilise le onsubmit d la balise form qui est absent dans ton code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form .../... onsubmit="return fctverif()" >
    la fontcion fctverif() faisiant les vérifications voulues (et les modifications, apparition d'images...) et retournant true si tout est ok ou false si il y a un os.

  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 : 54
    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 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(check_name() & check_username())
    c'est voulu le "&" tout seul ?
    Tu voudrais pas plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(check_name() && check_username())

  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
    Citation Envoyé par Bovino Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(check_name() & check_username())
    c'est voulu le "&" tout seul ?
    Tu voudrais pas plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(check_name() && check_username())
    Dans les deux cas, ça fonctionne ici

    1 (true) & 1 (true) == 1 (true)
    1 (true) & 0 (false) == 0 (false)
    0 (false) & 0 (false) == 0 (false)

  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 : 54
    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 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Arnaud F. Voir le message
    Dans les deux cas, ça fonctionne ici

    1 (true) & 1 (true) == 1 (true)
    1 (true) & 0 (false) == 0 (false)
    0 (false) & 0 (false) == 0 (false)
    C'est pas faux...


  6. #6
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Points : 90
    Points
    90
    Par défaut
    la fontcion fctverif() faisiant les vérifications voulues (et les modifications, apparition d'images...) et retournant true si tout est ok ou false si il y a un os.
    Je pense qu'en jQuery est represente par ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    frm_login.submit(function(){
    if(check_name() && check_username())
    Ca retourne pas les erreurs

  7. #7
    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
    Citation Envoyé par Bovino Voir le message
    C'est pas faux...

    C'est "fonctionne" que t'as pas compris?

  8. #8
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par Arnaud F. Voir le message
    C'est "fonctionne" que t'as pas compris?
    On n'a pas compris

  9. #9
    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
    Ben ça fonctionne le submit:
    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
    <script type='text/javascript'>
    $(function(){
    		$("#bar").submit(function(){
    		var NoGo=true;
    		if($("#foo").val().length==0){
    		NoGo=false;
    		$("#toc").html("Ce champs est vide")
    		}
    		else {$("#toc").html("")}
    		return NoGo;
    		})
    })
     
    	</script>
    </head>
     
    <body>
     
    <form action="javascript:alert('envoyé')" id="bar">
      <input type="text" id="foo" value /><span id="toc"></span><br/>
      <input type="submit" value="go" />
    </form>

  10. #10
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Points : 90
    Points
    90
    Par défaut
    Oui ca fonctionne, je l'ai teste, mais le doute que j'ai est au niveau de la fonction qui recupere tous les TRUE ou False et les verifie pour envoyer le formulaire ou non:

    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
     
    // en gros, la soumission de la form
    frm_login.submit(function(){
    		if(check_name() & check_username())
    		{
    		$(".congs").html('merci');
    			return true
    			}
    		else
    		{
    			$(".congs").html('erreur');
    			return false;
     
    			}
    	});
    en cas de true le formulaire doit etre envoye avec le message merci, sinon avec le message erreur et en plus les erreurs deja constate au niveau jQuery, il doit les afficher, le formulaire affiche 'merci' et 'erreur' dans les 2 cas, mais il n'affiche pas la liste des erreurs pre-verifie en cas d'erreur (false)

  11. #11
    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
    heu ....

    qui dit retour de true ... dit soumission du formulaire
    donc tu quittes la page.

    est bien interprété mais il ne dure que le temps que la ligne suivante retourne true

    la preuve si tu intercales un alert:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $(".congs").html('merci');
      alert('juste pour voir');
    			return true;
    			}

  12. #12
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    heu ....

    qui dit retour de true ... dit soumission du formulaire
    donc tu quittes la page.
    Et qui dit false, dit non soumission et affichage des erreurs, alors comment les afficher en face de leurs champs?

  13. #13
    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
    comme dans mon exemple de code ...

  14. #14
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    comme dans mon exemple de code ...
    Le code renvoi l'alert, alors en cas d'echec, il doit renvoyer les erreurs, comment faire?

  15. #15
    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
    Non le code précédent, pas celui avec l'alert

    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
    <script type='text/javascript'>
    $(function(){
    		$("#bar").submit(function(){
    		var NoGo=true;
    		if($("#foo").val().length==0){
    		NoGo=false;
    		$("#toc").html("Ce champs est vide")
    		}
    		else {$("#toc").html("")}
    		return NoGo;
    		})
    })
     
    	</script>
    </head>
     
    <body>
     
    <form action="javascript:alert('envoyé')" id="bar">
      <input type="text" id="foo" value /><span id="toc"></span><br/>
      <input type="submit" value="go" />
    </form>

  16. #16
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Points : 90
    Points
    90
    Par défaut
    Enfin j'ai pu avoir ce code la:

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
     
    <html dir="rtl">
    <head>
    <style type="text/css">
    #name, #username, #email {
    	border-color: #FF0000;
    	border-style: solid;
    	border-width: 1px;
    	border-collapse: collapse;
    	-moz-border-radius: 5px;
    }
     
    #label01 {
    	width: 100px;
    	display:block;
    	float: right;
    }
     
    .frm_fields {
    	padding: 5px;
    }
     
    input:focus {
          background: #fc9fff;   
    }
     
    .CurFocus {
    background: #fdecb2;
    width: 800px;
    }
     
    </style>
     
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="jquery.js" type="text/javascript"></script>
     
    <script type="text/javascript">
    $(document).ready(function(){
     
    // on determine des variables pour les inputs
    	var frm_login = $("#frm_login");
    	var name = $("#name");
    	var username = $("#username");
    	var email = $("#email");
    	var nMsg = $(".nMsg");
    	var pMsg = $(".pMsg");
    	var eMsg = $(".eMsg");
    	//var span = $("span");
     
     
    	// on procede a la verification des champs
    	// Nom
    	function check_name() {
     
    		if (name.val().length < 5)
    		{
    			nMsg.text('We want names with more than 5 chars');
    			return false;
    		}
    		else
    		{	
    			nMsg.html('<img src="success.png" width="20" height="20" align="absmiddle">');
    			return true;
    		}
    	}
     
     
     
    	// Pseudo
    	function check_username() {
     
    		if (username.val().length < 5)
    		{
    			pMsg.text('We want usernames with more than 5 chars');
    			return false;
    		}
    		else
    		{	
     
    			pMsg.html('<img src="loading.gif" width="20" height="20" align="absmiddle"> Checking availability');	
    			//Récupération des valeurs du formulaires
    		var name_val 		= $("#name").val();
    		var username_val 	= $("#username").val();
    		var dataString 	= 'name=' + name_val + '&username=' + username_val;
     
     
    	$.ajax({
     
    	type: 'POST',
    	url: 'check_availability.php',
    	data : dataString, 
     
    	success: function(response)
    		{  // en cas de failure le code de background est: #ddc9c8 et le success: #badfac et le bleu: #ccccff
     
    				if (response != 'ok')
    		{
    			pMsg.html('<img src="error.png" width="20" height="20" align="absmiddle"> Le pseudo que vous avez choisis est deja en utilisation!');
    			$(".sAvailable").html('');
     
    			return false;
     
    			}
    			else
    			{
    				pMsg.html('<img src="success.png" width="20" height="20" align="absmiddle">');
     
    				pMsg.html('');			
    				pMsg.html('<img src="success.png" width="20" height="20" align="absmiddle"> Le pseudo <b>' + username_val + '</b> est disponible');
     
     
     
    			} //end else response
    			} //function response
    			}); // end ajax function
     
    		} //end else username.val
    		return true; 
    	} //end username function
     
     
    	// Email
    	function check_email() {
     
    		if (email.val().length < 5)
    		{
    			eMsg.text('We want a valid emails');
    			return false;
    		}
    		else
    		{	
    			eMsg.html('<img src="success.png" width="20" height="20" align="absmiddle">');
    			return true;
    		}
    	}		
     
    		/*
    	// on blur function sur chaque champs
    	name.blur(check_name); // verification on blur de la fonction check_name sur le champs name
    	username.blur(check_username);
    	email.blur(check_email);
    	*/
     
    	// on keyup function sur chaque champs
    	name.keyup(check_name); // verification on keyup de la fonction check_name sur le champs name
    	username.keyup(check_username);
    	email.keyup(check_email);
     
     
     
     
    	frm_login.submit(function(){
    		if(check_name()& check_username() & check_email())
    		{
    		$(".congs").html('merci');
    			return true;
    		}
    		else
    		{
    			$(".congs").html('erreur');
    			return false;
    		}
    		//return false;
     }); 
     
     return false;
      }); // end DOM function
    </script>
     
     
    </head>
    <body>
    <?php
    include 'site_vars.php';
     
    	echo '<span class="congs"></span>';
        echo '<form name="frm_login" id="frm_login" action="#" method="POST">';
        echo '<div class="frm_fields">';
        echo '<label for="name" id="label01">'.$name_var.'</label>';
        echo $name_input;
        echo '<span class="nMsg"></span>'; // en cas d'erreur
        echo '</div>';
     
        echo '<div class="frm_fields">';
        echo '<label for="username" id="label01">'.$username_var.'</label>';
        echo $username_input;
        echo '<span class="pMsg"></span>'; // en cas d'erreur
        echo '<span class="Checking"></span>'; // en cas de success
     
        echo '</div>';
     
        echo '<div class="frm_fields">';
        echo '<label for="email" id="label01">'.$email_var.'</label>';
        echo $email_input;
        echo '<span class="eMsg"></span>'; // en cas d'erreur
        echo '</div>';
     
        echo '</span>';
     
        echo $submit_var;
     
        echo '</form>';
    ?>
     
    </body>
    </html>
    Mais quand je clique sur envoyer, au console (firebug), me donne response vide, ca veut dire il n'a rien recuperer, alors en remplissant les champs reponse est 'ok', voila le code de check_availabilty:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    $username = $_POST['username'];
     
    echo 'ok';
    ?>

  17. #17
    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
    comme déja fait remarqué par Beef:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(check_name() && check_username() && check_email())

    ça c'est dangereux
    conflits d'utilisation de mots réservés de javascript ...
    (y'a qu'a voir la coloration syntaxique...)


    ensuite là tu select par le class name
    tu récupères donc une collection :
    =>
    et pour finir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $username = $_POST['username'];
     
    echo 'ok';
    ?>
    ça fait pas grand chose ça ...

    ce serait plus intéressant pour debugguer de fair
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo nl2br(print_r($_POST,true));
    ?>

  18. #18
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Points : 90
    Points
    90
    Par défaut
    voila le code du cote check_name ainsi que j'ai change les variables, je les ai precede par "my_", en ajoutant le "eq(0)" au message, ca change rien, de plus en ajoutant le code de debug comme tu l'as deja mentionne, ca me donne le message "Le pseudo que vous avez choisis est deja en utilisation", c'est normal puisque je valide le retour avec "ok":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    echo nl2br(print_r($_POST,true));
    ?>
    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
    // on procede a la verification des champs
    	// Nom
    	function check_name() {
     
    		if (my_name.val().length < 5)
    		{
    			my_nMsg.text('We want names with more than 5 chars');
    			return false;
    		}
    		else
    		{	
    			my_nMsg.eq(0).html('<img src="success.png" width="20" height="20" align="absmiddle">');
    			return true;
    		}
    	}

  19. #19
    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 : 54
    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 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Euh... my_nMsg c'est quoi au juste ?
    Parce que
    puis
    c'est pas trop compatible

  20. #20
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Euh... my_nMsg c'est quoi au juste ?
    Parce que
    puis
    c'est pas trop compatible
    c'est la variable du $("#nMsg")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var my_nMsg = $(".nMsg");
    voir en haut le message de SpaceFrog

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/03/2012, 14h29
  2. [ZF 1.11] Element file formulaire qui n'affiche pas les erreurs
    Par absot dans le forum Zend_Form
    Réponses: 3
    Dernier message: 25/11/2011, 10h52
  3. [1.x] Formulaire mal rempli qui n'affiche pas les erreurs
    Par bahamut100 dans le forum Symfony
    Réponses: 5
    Dernier message: 03/06/2010, 00h21
  4. Formulaire n'envoie pas les données
    Par vladock dans le forum Langage
    Réponses: 7
    Dernier message: 04/08/2008, 13h24
  5. Formulaire dans PHP n'envoie pas les $_POST
    Par GOMMME dans le forum Langage
    Réponses: 6
    Dernier message: 19/05/2008, 17h32

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