Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/03/2011, 02h36   #1
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
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 :
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
isitien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 08h33   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
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 :
<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.
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 09h35   #3
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 805
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 805
Points : 35 807
Points : 35 807
Code :
if(check_name() & check_username())
c'est voulu le "&" tout seul ?
Tu voudrais pas plutôt
Code :
if(check_name() && check_username())
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 13h18   #4
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 204
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 204
Points : 6 113
Points : 6 113
Citation:
Envoyé par Bovino Voir le message
Code :
if(check_name() & check_username())
c'est voulu le "&" tout seul ?
Tu voudrais pas plutôt
Code :
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)
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 13h42   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 805
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 805
Points : 35 807
Points : 35 807
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...

__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 20h53   #6
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
Citation:
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 :
1
2
 
frm_login.submit(function(){
Citation:
if(check_name() && check_username())
Ca retourne pas les erreurs
isitien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2011, 00h39   #7
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 204
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 204
Points : 6 113
Points : 6 113
Citation:
Envoyé par Bovino Voir le message
C'est pas faux...

C'est "fonctionne" que t'as pas compris?
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2011, 09h04   #8
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
Citation:
Envoyé par Arnaud F. Voir le message
C'est "fonctionne" que t'as pas compris?
On n'a pas compris
isitien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2011, 09h39   #9
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
Ben ça fonctionne le submit:
Code :
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>
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2011, 12h02   #10
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
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 :
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)
isitien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2011, 17h20   #11
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
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 :
1
2
3
4
$(".congs").html('merci');
  alert('juste pour voir');
			return true;
			}
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2011, 02h51   #12
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
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?
isitien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2011, 08h28   #13
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
comme dans mon exemple de code ...
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2011, 04h40   #14
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
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?
isitien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2011, 08h37   #15
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
Non le code précédent, pas celui avec l'alert

Code :
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>
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 04h24   #16
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
Enfin j'ai pu avoir ce code la:

Code :
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 :
1
2
3
4
5
6
 
<?php
$username = $_POST['username'];
 
echo 'ok';
?>
isitien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 08h39   #17
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
comme déja fait remarqué par Beef:

Code :
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 :
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 :
1
2
3
<?php
echo nl2br(print_r($_POST,true));
?>
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/03/2011, 02h51   #18
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
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 :
1
2
3
4
 
<?php
echo nl2br(print_r($_POST,true));
?>
Code :
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;
		}
	}
isitien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 07h54   #19
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 805
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 805
Points : 35 807
Points : 35 807
Euh... my_nMsg c'est quoi au juste ?
Parce que
puis
c'est pas trop compatible
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 10h53   #20
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
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 :
1
2
 
var my_nMsg = $(".nMsg");
voir en haut le message de SpaceFrog
isitien est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h42.


 
 
 
 
Partenaires

Hébergement Web