Jump to content

validar campo al perder el foco php mysql


Recommended Posts

Puxa según lo que leí del alvarox acá no va pedir ayuda, pero igual toy complicado al máximo, así es que si pueden ayudarme moviendo donde corresponde sería la raja,

 

El drama, toy generando una ficha de inscripción vía web y me metí en php, antes lo tenía en visual pero me pidieron así, el tema que tengo la lógica y todo, pero estoy entrando recién en php y lo que necesito es validar el rut al perder el foco y no al dar aceptar, la idea es que no pierda el tiempo si el perico ta registrado con su rut y así no llenar los campos que vienen después...no se si me explico...

 

actualmente tengo la validación al finalizar el llenado de los datos (como 30 campos) y recién ahí valido,

 

mi pregunta es...como lo hago?? que función utilizo??? o mejor dicho, que herramienta utilizo???

 

porfa ayuda que esto lo tengo que tener antes de noviembre, lo bueno que estoy topando en esto no mas lo demás está desarrollado

 

agradeciendo de antemano...me despido

Link to comment
Share on other sites

me extraña que si tienes la lógica y todo pienses en php... siendo que debería ser con javascript cuando hablas de perder el foco.

 

Lo que debes hacer es un Ajax... Aunque también puedes hacerlo sólo con Php pero se vería más feo creo yo.

 

Con php:

La lógica es...

tienes el formulario... el primer campo que tienes es su rut, para saber si ya se encuentra en la BD y quiere inscribirse, el tema ahí dependiendo de la inscripción debes pensar en si es esa la persona que realmente se está inscribiendo, ya que cualquiera puede llegar y meter un rut que no es el suyo, entonces, le afectará eso al usuario dueño del rut ? o sólo quedará inscrito en algo ya sea concurso u otra cosa que lo beneficie... creo que deberías enviar un email de verificación en casos como ese... etc.

 

Entonces... sólo enseñas el formulario con el campo rut y el input de submit.

 

El sujeto ingresa su rut y realiza submit, el submit puede ir tanto a la misma página o a otra dependiendo lo que quieras...

 

Entonces, te llega como $_POST['name_rut'] <- según el name de tu input text.

 

Realizas consulta a la base de datos...

if($_POST['name_rut') <- si viene algo en esa variable...

 

realizas consulta WHERE rut = $_POST['name_rut']

 

if($_POST['name_rut']) <- si viene un rut...

Muestro los campos que solicitas para el ingreso

 

<input type = "text" name = "nombre" id = "nombre" value="<? echo $row_consulta['nombre']?>">

 

... etc...

 

Ahora, si quieres que se inscriba automáticamente si el rut existe y no mostrarle los campos con sus valores... entonces:

 

if($_POST['name_rut']){

$variable = SELECT * FROM usuarios WHERE rut = '$_POST[name_rut]';

}

 

if($variable) //Si tiene datos, obviamente el row, o como lo estes haciendo...

{

inscribes con sql o lo que sea que estes usando...

}

 

Bueno con jQuery es bastante más facil y más bonito, ya que no tienes que andar refrescando la página, sólo mandas un ajax, y en el ajax realizas las consultas.

Link to comment
Share on other sites

como dice RALCN la respuesta es ajax, si sabes acerca de ajax te ayudo sino tendrias que hechar una ojeada a la tecnologia ajax.

 

edito, "perder el foco" en javascript es igual a onblur, vale decir:

 

<input onblur="algunaFuncionJS();" />

 

Saludos..

Edited by cañangasñangas
Link to comment
Share on other sites

Muchas gracias por la respuesta, me queda super claro, como había dicho estoy entrando recién, así es que a leer algo de ajax, RALCN, CAñangasñangas...muchas gracias...chilecomparte...ayudando como siempre...a seguir aprendiendo....

 

cumpa te dejo por interno un manual de ajax ;)

 

avisame si lo damos por resuelto o prefieres dejar abierto el tema para futuras preguntas...

 

Saludos :adios:

Link to comment
Share on other sites

Listo :tonto:

 

1- La web con el formulario(form.php):

<html>
<head>
<style type="text/css">
#mensaje{color:red;}
.bien{color:green !important;}
</style>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.8.3.js'></script>
<script src="http://joaquinnunez.cl/jQueryRutPlugin/jquery.Rut.js" type="text/javascript"></script>
<script src="http://joaquinnunez.cl/jQueryRutPlugin/jquery.validate.js" type="text/javascript"></script>

<script type="text/javascript">
$(document).ready(function(){
   
   $('#rut').Rut({
       format_on: 'keyup',
       on_error: function(){ 

        $("#mensaje").html("Rut Invalido");
  
      },
      on_success: function(){ 

      var rut = $("#rut").val();

     
      $.ajax({
          url: 'valida.php',  //Server script to process data
          type: 'POST',
          
          //Ajax events
        beforeSend: function () {
                
                },
                success:  function (response) {
                          $("#mensaje").addClass('bien');
                          $("#mensaje").html(response);  
                       
                },
             
        data: {rut : rut}
        
        });

      } 
 });

});
</script>

</head>

<body>
<form name="fileFilter" id="fileFilter">
<input type="text" name="rut" id="rut" />
</br>
<input type="button" value="Probar Rut" id="test" name="test"/>
<div id="mensaje"></div>
</form>
</body>
</html>

Y la página php que se invoca vía ajax(valida.php):

<?php
#Acá valido mi rut vs la base de datos y entrego el mensaje correcto
#Lo podría hacer pero me da pajita u.u
#Además es refácil, cone sto ya tienes un 80% listo

$rut = $_POST['rut'];

echo "Verificando el rut: {$rut} en la base de datos";

?>

Saludos a todos :tontotv:

Edited by AshWilliams
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...