Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/09/2015, 12:39
boistoc
 
Fecha de Ingreso: junio-2014
Mensajes: 60
Antigüedad: 9 años, 11 meses
Puntos: 0
Validar todos los campos de un formulario al mismo tiempo

Hola buenas tardes.
Miren estoy haciendo un formulario de registro en el cual quiero hacer que todos los campos se validen al mismo tiempo, intente separar cada if tanto en el JS como en el PHP, pero no me funciona correctamente, no se realmente como debo hacer eso, les dejo mi código para ver si me pueden ayudar:

JS
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     $("#reg").submit(function(event){
  3.         event.preventDefault();
  4.         $.ajax({
  5.             url:'registro.php',
  6.             type: 'POST',
  7.             dataType: 'json',
  8.             data: $("#reg").serializeArray()
  9.         }).done(function(Result){
  10.             if(Result.Error == "Ok") {
  11.                 window.location.href = '/principal';
  12.             }else{
  13.                
  14.                 if(Result.Error == 'Required_M') {
  15.                     $('.inptm').prepend('<div>Este campo es requerido.</div>');
  16.                 }else if(Result.Error == "Mail_A") {
  17.                     $('.inptm').prepend('<div>El email ingresado no es válido.</div>');
  18.                 }else if(Result.Error == "Mail_B") {
  19.                     $('.inptm').prepend('<div>El email ya esta registrado.</div>');
  20.                 }
  21.                
  22.                 if(Result.Error == 'Required_P') {
  23.                     $('.inptp').prepend('<div>Este campo es requerido.</div>');
  24.                 }else if(Result.Error == "Password") {
  25.                     $('.inptp').prepend('<div>Las contraseñas ingresadas no coinciden.</div>');
  26.                 }
  27.                
  28.                 if(Result.Error == 'Required_D') {
  29.                     $('.inptd').prepend('<div>Este campo es requerido.</div>');
  30.                 }
  31.                
  32.                 if(Result.Error == 'Required_T') {
  33.                     $('.t_c').prepend('<div>Debes aceptar los terminos y condiciones.</div>');
  34.                 }
  35.                
  36.             }
  37.         });
  38.     });
  39. });

PHP
Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     require 'Config.php';
  4.     $Result = new stdClass();
  5.    
  6.     $password = $_POST['password'];
  7.     $mail = $_POST['mail'];
  8.  
  9.     $checkmail = Mysqli::Query("SELECT Mail FROM users WHERE Mail = '".$mail."'");
  10.    
  11.     if(isset($_POST['terms']) == 'acepto'):
  12.         $RsT_Ok = true;
  13.     else:
  14.         $Result->Error = 'Required_T';
  15.     endif;
  16.    
  17.     if($_POST['fdia'] == NULL || $_POST['fmes'] == NULL || $_POST['fyear'] == NULL):
  18.         $Result->Error = 'Required_D';
  19.     else:
  20.         $RsD_Ok = true;
  21.     endif;
  22.    
  23.     if($password == NULL):
  24.         $Result->Error = 'Required_P';
  25.     elseif($password != $_POST['repassword']):
  26.         $Result->Error = 'Password';
  27.     else:
  28.         $RsP_Ok = true;
  29.     endif;
  30.    
  31.     if($mail == null):
  32.         $Result->Error = 'Required_M';
  33.     elseif(!Functions::Validate($mail)):
  34.         $Result->Error = 'Mail_A';
  35.     elseif($checkmail->num_rows >= 1):
  36.         $Result->Error = 'Mail_B';
  37.     else:
  38.         $RsM_Ok = true;
  39.     endif;
  40.        
  41.    
  42.     if(isset($RsM_Ok, $RsP_Ok, $RsD_Ok, $RsT_Ok)):
  43.         $password = crypt($password, '$6$x19$\w/dasd%$ewrwg$sadas%&asdasdaw$');
  44.         $username = strstr($mail, '@', true);
  45.        
  46.             Mysqli::Query("INSERT INTO users (username, Mail, Password, Day_Month, Year) VALUES ('".$username."', '".$mail."', '".$password."', '".$_POST['fdia']." de ".$_POST['fmes']."', '".$_POST['fyear']."')");
  47.            
  48.             $Reg = Mysqli::Query("SELECT Mail FROM users WHERE Mail = '".$mail."'");
  49.             $Register = $Reg->fetch_array();
  50.            
  51.             $_SESSION['mail'] = $Register['Mail'];
  52.             $Result->Error = 'Ok';
  53.     endif;
  54.         echo json_encode($Result);
  55. ?>

Les comento que SI me valida todo perfectamente pero uno por uno y lo que yo deseo es que se validen todos al mismo tiempo ¿Me dan una mano?
Nota: No supe si colocarlo aquí o en PHP, lo siento.
Graicas