Ver Mensaje Individual
  #6 (permalink)  
Antiguo 28/07/2013, 10:47
Avatar de Evair_Peterson
Evair_Peterson
 
Fecha de Ingreso: enero-2013
Mensajes: 14
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Desvío de retorno de validación PHP al value de un input?

Cita:
Iniciado por vosk Ver Mensaje
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
Cita:
Iniciado por edward1994 Ver Mensaje
Te explico!..el PHP es un lenguaje manejado desde el servidor funciona asi...
el cliente envia la solicitud por el navegador al servidor! el servidor procesa lo enviado con el codigo y luego genera una respuesta HTML la cual es enviada al navegador!
Mientras que el javascript es un lenguaje que trabaja en el lado del cliente o sea en el navegador y es por eso que puedes hacer lo que mencionaste con javascript! ahora hay una alternativa para lo que quieres hacer y es con ajax, te recomiendo que lo uses bajo la libreria jquery..donde podras hacer el envio del form y hacer la validacion y permitir que la respuesta generada por el servidor sea mostrada en el boton de tu formulario como explicaste!

Otra cosa! yo que tu, validaria sin el javascript! ya que actualmente existen otra tecnologia mas facil de implementar que son los atributos de las etiquetas de HTML 5
como lo es required o el type de los campos como number,email..etc!

Hace la misma funcion que con un javascript y hasta mejor..ademas sufre de las mismas debilidades por ser manejado del lado del cliente!


Gracias por sus respuestas al topico. Bueno....


Vosk, el "gran" problema que tengo y que busco solución es que, cuando se ejecuta la segunda validación con el PHP si se encuentra algún error se va generar un mensaje de advertencia. Pero necesito rellenar en value de un campo input de tipo texto especifico con el contenido de ese mensaje. Con javascript es posible hacerlo con algo +/- así: frmRegisterError.value = "el texto que va rellenar el input".

Pero... Cómo hacer igual con la verificación PHP?

edward1994, no sé si las etiquetas de HTML5 me podría ayudar en eso que necesito. Como he dicho, esa es una versión muy simplificada del formulario que estoy desarollando... Para que comprendas mejor que habrá en el, le dejo abajo el contenido del formulario y el codigo completo para la validacion javascript. Asi mismo, hay mucho más que mejorarse en la validación JS, que por ahora es basica apenas para la fase de prueba para la evaluación de sus características funcionales. Ahora acerca de las librerias JQuery sé que son buenísimas, aunque por ahora no tengo conocimiento de como usarselas. Pero por estos momento, ya se me esta funcionando la función de evaluación en el lado del cliente, quisiera hacer que funcionara el mismo en el lado del servidor. En otro momento sí iba estudiar mejor esa libreria para poder quizá cambiar el codigo de una manera que funcione mejor y de modo más simple. En un otro sítio web vi uno diciendo que se podría hacer algo semejando a lo que necesito con sessions, pero ni tampoco puedo imaginar como hacerlo. No sé si usted podría ayudarme en eso?



Agradezco por la atención de ustedes.
Saludos desde Brasil, Evair.