Bloqué sur le résultat d'une requete ajax [Résolu]

alone06 115 Messages postés mardi 9 novembre 2010Date d'inscription 18 mai 2016 Dernière intervention - 14 oct. 2015 à 20:36 - Dernière réponse : alone06 115 Messages postés mardi 9 novembre 2010Date d'inscription 18 mai 2016 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

2 réponses

alone06 115 Messages postés mardi 9 novembre 2010Date d'inscription 18 mai 2016 Dernière intervention - 15 oct. 2015 à 13:30
0
Merci
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
Commenter la réponse de alone06
alone06 115 Messages postés mardi 9 novembre 2010Date d'inscription 18 mai 2016 Dernière intervention - 15 oct. 2015 à 14:30
0
Merci
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.
Commenter la réponse de alone06

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.