Bloqué sur le résultat d'une requete ajax

Résolu
alone06
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016
- Modifié par alone06 le 14/10/2015 à 21:39
alone06
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016
- 15 oct. 2015 à 14:30
Bonjour,

Je viens vous voir après avoir été bloqué sur un petit script de validation d'un formulaire en ajax.

Sans trop tarder, je vous montre les fichiers :

index.php :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script src="js/jquery-2.1.1.min.js"></script>


</head>

<body class="home" dir="ltr">

<!-- Outer Starts -->
<div class="outer" style="background:#ebeff2;">
<!-- Header two Starts -->
<? include "head.php"; ?>
<!-- Header two Ends -->

<div class="main-block">
  <div class="page-heading-two">
    <div class="container">
      <h2> Ajout d'un nouveau compte : </h2>
      <div class="clearfix"></div>
    </div>
  </div>
  <div class="container">
    <div class="row">
      <div class="col-md-5" style="width:auto">
        <div class="well login-reg-form">
          
          <h4>Étape 1 : Informations personnelles</h4>
          <hr  style="border-bottom: 1px solid rgb(212, 221, 221);"/>
          <form class="form-horizontal" method="post" role="form" style="max-width: 615px" id="register_form" onsubmit="return false;">
            <div class="form-group">
              <label class="col-sm-3 control-label" for="name">Nom <span class="text-danger">*</span> </label>
              <div class="col-sm-9">
                <input class="form-control" type="text" placeholder="Nom " value="" name="company_name" id="name" required="required">
                
                <small id="output_checkname"></small>
              </div>
            </div>
            <div class="form-group">
              <label class="col-sm-3 control-label" for="representant"> Nom et prénom du représentant légal <span class="text-danger">*</span> </label>
              <div class="col-sm-9">
                <input class="form-control" type="text" placeholder="Nom et prénom du représentant légal" value="" name="representant" id="representant" required="required">
                <small id="output_checkrepresentant"></small>
              </div>
            </div>
            <div class="form-group">
              <label class="col-sm-3 control-label" for="email"> email <span class="text-danger">*</span> </label>
              <div class="col-sm-9">
                <input class="form-control" type="text" placeholder="email" value="" name="email" id="email" required="required">
                <small id="output_checkemail"></small>
              </div>
            </div>
            <div class="form-group">
              <label class="col-sm-3 control-label" for="username"> Nom d'utilisateur <span class="text-danger">*</span> </label>
              <div class="col-sm-9">
                <input class="form-control" type="text" placeholder="Nom d'utilisateur" value="" name="username" id="username" required="required">
                <small id="output_checkusername"></small>
              </div>
            </div>
            <div class="form-group">
              <label class="col-sm-3 control-label" for="phone">téléphone</label>
              <div class="col-sm-9">
                <input class="form-control" type="text" placeholder="téléphone" value="" name="phone" id="phone">
                <small id="output_checkphone"></small>
              </div>
            </div>
            <div class="form-group">
              <label class="col-sm-3 control-label" for="password"> mot de passe <span class="text-danger">*</span> </label>
              <div class="col-sm-9">
                <input class="form-control" type="password" placeholder="mot de passe" name="password" id="password" required="required">
                <small id="output_checkpassword"></small>
              </div>
            </div>
            <div class="form-group">
              <label class="col-sm-3 control-label" for="repassword"> Confirmez Le Mot De Passe <span class="text-danger">*</span> </label>
              <div class="col-sm-9">
                <input class="form-control" type="password" placeholder="Confirmez Le Mot De Passe" name="repassword" id="repassword" required="required">
                <small id="output_checkrepassword"></small>
              </div>
            </div>
            <hr  style="border-bottom: 1px solid rgb(212, 221, 221);"/>
            
            <div class="form-group" id="status" style="display: none;">
<div class="notification note-error">
<p style="margin-left: 44px;margin-top: -4px;">
<strong>Erreur:</strong>
 Merci de remplir tous les champs.
</p>
</div>
</div>
            
            <div class="form-group">
              <div class="col-sm-offset-3 col-sm-9">
                <button class="btn btn-red" type="submit" name="envoi" id="bRegister">Soumettre</button>
              </div>
            </div>
          </form>
          <hr  style="border-bottom: 1px solid rgb(212, 221, 221);"/>
        </div>
      </div>
    </div>
  </div>
  <? include "foot.php"; ?>
</div>
<script type="text/javascript">
				$(document).ready(function(){
					
					$("#register_form input").focus(function(){
						$("#status").fadeOut(800);
					});
					
					$("#name").blur(function(){
						//On vérifie si le nom de la compagnie est ok 
							check_name();
					});
					$("#representant").blur(function(){
						//On vérifie si le nom du representant est ok 
							check_representant();
					});
					$("#email").blur(function(){
						//On vérifie si l email est ok ou n'est déjà utilisé
							check_email();
					});
					
					
					
					$("#username").blur(function(){
						//On vérifie si le username est ok ou n'a pas été déjà pris
							check_username();
					});
					$("#phone").blur(function(){
						//On vérifie si le numéro de téléphone est ok
							check_phone();
					});
					

					$("#password").blur(function(){
						//On vérifie si le mot de passe est ok
							if($(this).val().length < 6){
								$("#output_password").css("color", "red").html("<br/>Trop court (6 caractères minimum)");
							} else if($("#repassword").val() != "" && $("#repassword").val() != $("#password").val()){
								$("#output_password").html("<br/>Les deux mots de passe sont différents");
								$("#output_repassword").html("<br/>Les deux mots de passe sont différents");
							} else {
								$("#output_password").html('<img src="images/check.png" class="small_image" alt="" />');
							}
					});

					$("#repassword").blur(function(){
						//On vérifie si les mots de passe coïncident
							check_password();
					});
					
					
					
function check_name(){
							$.ajax({
								type: "post",
								url:  "register.php",
								data: {
									'name_check' : $("#name").val()
								},
								success: function(data){
											if(data == "success") {
												$("#output_checkname").html('<img src="images/check.png" class="small_image" alt="" />');
												return true;
											} else {
												$("#output_checkname").css("color", "red").html(data);
											}
										 }
							});
					}
					
					
					
function check_representant(){
							$.ajax({
								type: "post",
								url:  "register.php",
								data: {
									'representant_check' : $("#representant").val()
								},
								success: function(data){
											if(data == "success"){
												$("#output_checkrepresentant").html('<img src="images/check.png" class="small_image" alt="" />');
												return true;
											} else {
												$("#output_checkrepresentant").css("color", "red").html(data);
											}
										 }
							});
					}
function check_email(){
							$.ajax({
								type: "post",
								url:  "register.php",
								data: {
									'email_check' : $("#email").val()
								},
								success: function(data){
											if(data == "success"){
												$("#output_checkemail").html('<img src="images/check.png" class="small_image" alt="" />');
											} else {
												$("#output_checkemail").css("color", "red").html(data);
											}
										 }
							});
					}
					
					
					
					
					

function check_username(){
							$.ajax({
								type: "post",
								url:  "register.php",
								data: {
									'username_check' : $("#username").val()
								},
								success: function(data){
											if(data == "success"){
												$("#output_checkusername").html('<img src="images/check.png" class="small_image" alt="" />');
												return true;
											} else {
												$("#output_checkusername").css("color", "red").html(data);
											}
										 }
							});
					}
				
				
				function check_phone(){
							$.ajax({
								type: "post",
								url:  "register.php",
								data: {
									'phone_check' : $("#phone").val()
								},
								success: function(data){
											if(data == "success"){
												$("#output_checkphone").html('<img src="images/check.png" class="small_image" alt="" />');
												return true;
											} else {
												$("#output_checkphone").css("color", "red").html(data);
											}
										 }
							});
					}	
					
					
					
					function check_password(){
							$.ajax({
								type: "post",
								url:  "register.php",
								data: {
									'password_check' : $("#password").val(),
									'repassword_check' : $("#repassword").val()
								},
								success: function(data){
											if(data == "success"){
												 $("#output_repassword").html('<img src="images/check.png" class="small_image" alt="" />');
												 $("#output_password").html('<img src="images/check.png" class="small_image" alt="" />');
											} else {
												$("#output_repassword").css("color", "red").html(data);
											}
										 }
							});
					}
					
					
					
					//Traitement du formulaire d'inscription
					$("#register_form").submit(function(){
						
						var status = $("#status");
						
						var company_name = $("#name").val();
						var representant = $("#representant").val();
						var email = $("#email").val();
						var username = $("#username").val();
						var phone = $("#phone").val();
						var password = $("#password").val();
						var repassword = $("#repassword").val();
						

						if(name == "" ||  representant == "" || email == "" || username == "" || password == "" || repassword == ""){
							status.html("Veuillez remplir tous les champs").fadeIn(400);
						} else if(password != repassword) {
							status.html("Les deux mots de passe sont différents").fadeIn(400);
						} else {	
							$.ajax({
								type: "post",
								url:  "register.php",
								data: {
									'name'    : company_name,
									    
                                    'representant' :  representant,
                                    'email'        :  email,
                                    'username'     :  username,
                                    'phone'        :  phone,
                                    'password'     :  password,
                                    'repassword'   :  repassword,
									
								},
								beforeSend: function(){
												$("#bRegister").attr("value", "Traitement en cours...");
											},
								success: function(data){
											if(data != "register_success"){
												status.html(data).fadeIn(400);
												$("#bRegister").attr("value", "Soumettre");
												$("#bRegister").addClass("btn-primary").css("color", "white");
											} else {
												
												    /*traitement*/
											}
										 }
							});
						}
					});
					
				
					
				});
			</script>

<!-- JavaScript libs are placed at the end of the document so the pages load faster --> 

<!--    <script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>--> 

<span class="totop"><a href="#"><i class="fa fa-angle-up bg-color"></i></a></span> 

<!-- Javascript files --> 

<!-- Bootstrap JS --> 

        
      </div>
      <div class="modal-footer"> </div>
    </div>
    
    <!-- /.modal-content --> 
    
  </div>
  
  <!-- /.modal-dialog --> 
  
</div>


</body>
</html>

et le fichier register.php :
 
 <?php 
include "functions.php";
//Vérification du nom
if(!empty($_POST['name_check'])){ 
	
	$name=htmlspecialchars(ltrim(rtrim($_POST['name_check'])), ENT_QUOTES);
	if(strlen($name) < 3 ){
echo '<br/>3 caractères minimum SVP.';
exit();
} 
		
	
	
	//Connexion à la base de données
	require "dataconn.php";
	$sql1 = "SELECT id FROM reg WHERE name='$name'"; 
    $req1 = mysql_query($sql1);  
	
	$res1 = mysql_num_rows($req1);
	
	if($res1!=0)
	

	{
		echo '<br/>Ce nom existe déjà dans notre base de données !';
		exit();
	} else {
		echo 'success';
		exit();
	}
}
//Vérification du representant
if(!empty($_POST['representant_check'])){ 
	
	$representant=htmlspecialchars(ltrim(rtrim($_POST['representant_check'])), ENT_QUOTES);
	
	
	if(!ctype_alpha($_POST['representant_check'])){
		echo '<br/>Le nom du representant ne peut pas contenir des chiffres.';
		exit();
	}else {
		echo 'success';
		exit();
	}
}
//Vérification de l'email
if(!empty($_POST['email_check'])){
	$email = $_POST['email_check'];
	
	//Vérifier l'adresse mail
	if(!filter_var($email, FILTER_VALIDATE_EMAIL)){  
		echo '<br/>Adresse email invalide !';
		exit();
	}
	//Connexion à la base de données
	require "dataconn.php";
	
	$sql2 = "SELECT id FROM reg WHERE email='$email'"; 
    $req2 = mysql_query($sql2);  
	
	$res2 = mysql_num_rows($req2);
	
	if($res2!=0)
	
	{
		echo '<br/>Adresse email déjà utilisée !';
		exit();
	} else {
		echo 'success';
		exit();
	}
}
//Vérification du pseudo
if(!empty($_POST['username_check'])){ 
	$username = $_POST['username_check'];
	$username = preg_replace('#[^a-z0-9]#i', '', $username); // filter everything but letters and numbers
	if(strlen($username) < 3 || strlen($username) > 16){
		echo '<br/>3 à 16 caractères SVP.';
		exit();
	}
	
	if(is_numeric($username[0])){
		echo '<br/>Le pseudo doit commencer par une lettre.';
		exit();
	}
	
	//Connexion à la base de données
	require "dataconn.php";
	$sql3 = "SELECT id FROM reg WHERE username='$username'"; 
    $req3 = mysql_query($sql3);  
	
	$res3 = mysql_num_rows($req3);
	
	if($res3!=0)
	
	
	{
		echo '<br/>Pseudo déjà utilisé !';
		exit();
	} else {
		echo 'success';
		exit();
	}
}
//Vérification du numéro de téléphone
if(!empty($_POST['phone_check'])){ 

	$phone = $_POST['phone_check'];
	
	$phone = preg_replace('#[^0-9]#i', '', $phone); // filter everything but letters and numbers
	if(!clean_display_phone($phone)){
		echo '<br/>Veuillez vérifier le numéro de téléphone.';
		exit();
	}
	
	
	if($phone[0]!='0'){
		echo '<br/>Veuillez vérifier le numéro de téléphone.';
		exit();
	}
}

//Vérification des mots de passe
if(!empty($_POST['password_check']) && !empty($_POST['repassword_check'])){
	if(strlen($_POST['password_check']) < 6 || strlen($_POST['password_check'])  < 6){
		echo '<br/>Trop court (6 caractères minimum)';
		exit();
	} else if($_POST['password_check'] == $_POST['repassword_check']){
		echo 'success';
		exit();
	} else {
		echo '<br/>Les deux mots de passe sont différents';
		exit();
	}

}



//Traitement de l'inscription

?>



Le soucis est le suivant :

quand data != de bon ce qui veut dire que l'email est invalide ou existe déjà le message d'erreur apparait bien
mais quand le résultat est bon c'est la ou est le soucis : bon apparait en rouge au lieu de la petite icone de validation.

Merci de m'aider.

2 réponses

alone06
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016

15 oct. 2015 à 13:30
j'ai eu une petite idée concernant le soucis, c'est que le test ce fait sur success qui apparait sur tous les résultats mais meme en donnant à chaque resultat un success différent (success1, success2 ...) l'erreur persiste
0
alone06
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016

15 oct. 2015 à 14:30
bon je viens de trouver l'erreur, c'etait un fichier fonctions que j'appellais, je ne sais pas comment il interagissait avec mon script.

Je l'ai enlevé et tous marche bien maintenant à part le du mot de passe et sa verification mais ça ne doit pas etre trop pénible à regler.
j'espère que ce script de verification de formulaire aidera ceux qui en auront besoin.
0