Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/07/2013, 10:15
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 4 meses
Puntos: 83
Respuesta: Desvío de retorno de validación PHP al value de un input?

El truco está en validar en el mismo documento (es decir, el form action apunta al mismo documento que contiene el form) y generar reportes de error:

Código PHP:
Ver original
  1. <?php
  2. //reporte de errores
  3. $errors = array();
  4.  
  5. //compruebas envio
  6. if(isset($_POST['submit'])) {
  7.  
  8.     //recuperas datos
  9.     $name = (isset($_POST['name'])? $_POST['name']:NULL);
  10.    
  11.     //validacion
  12.     if($name !== NULL && strlen($name) > 0) {
  13.         //validacion ok
  14.                 return;
  15.     }
  16.     else {
  17.         $errors[] = "Indique un nombre";
  18.     }
  19. }
  20. ?>
  21. <html><head>
  22. <!-- aquí va el js -->
  23. </head><body>
  24.  
  25. <form action="" method="POST">
  26.     <?php
  27.     //vuelca los errores encontrados
  28.     foreach($errors as $error) {
  29.         echo "<div class=\"error_class_style\">".$error."</div><br />";
  30.     }
  31.     ?>
  32.     <label for="name">Nombre</label><br />
  33.     <input type="text" name="name" value="" />
  34.     <br /><br />
  35.     <input type="submit" name="submit" value="submit" />
  36. </form>
  37.  
  38. </body></html>

Cuando obtienes la validacion favorable solo tienes que aplicar las operaciones para las que envias los datos, o redirigir al documento que lo hace o lo que quieras, el return te asegura que no se reenviará el documento del form cuando la validacion es correcta.

A ver si te sirve de ayuda

Saludos
vosk