Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/09/2015, 11:05
boistoc
 
Fecha de Ingreso: junio-2014
Mensajes: 60
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Validar todos los campos de un formulario al mismo tiempo

Cita:
Iniciado por Alexis88 Ver Mensaje
En lugar de regresar un valor, regresa un array con las respuestas y solo para las que sean de error, muestras el respectivo mensaje.

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

En efecto me muestra todos los resultados pero no en la web ¿Tengo que modificar algo en el JS?