Comunidad de diseño web y desarrollo en internet online

Duda sobre validación en jQuery?

Citar            
MensajeEscrito el 20 Nov 2014 03:59 am
:D :) Hola que tal buenas noches o días, que tal a todos, estoy realizando un proyecto con html y php,
he realizado una pagina de login con con 2 cajas de texto una para el nombre de usuario y la otra para
la contraseña, he logrado implementar una función en jquery para procesar el formulario mediante ajax
y php, al presionar el botón submit del formulario de login aparece una animación con un div que contiene un spinner (una imagen gif de ajax) y la palabra loading, ademas se ve en blur la pagina, simulando el proceso de
de carga para el login .

Me pregunta es como implementar una validación mediante jQuery en la misma función que ya tengo, para campos vacíos o erróneos del formulario de login, usando php si lo puedo realizar, solo que quiero entrar mas de lleno a jQuery.

Mi objetivo es lograr que al terminar la animación de la caja de "loading", si es que el campo de nombre de
usuario o password están vacíos o son inválidos,con efecto de fade, su borde cambie a color rojo y aparezca un mensaje que pueda se personalizado, de que el campo tiene que ser llenado justo debajo del input o caja de texto, en este caso no se procesa el formulario a php, y si están correctos los campos si se envía, en este caso se imprime un mensaje de que todo ha ido bien.

A continuacion muestro una imagen de lo que llevo realizado hasta el momento


y esto es lo que quiero lograr al terminar la animacion ajax



Este mi codigo html del formulario de login

Código HTML :


<div class="loading-mask"></div>
<div class="loading"></div>
<div id="result" class="clearfix"></div>
<div class="leaving-wrapper">
      <div class="leaving-header">
         <h1>AUTENTICATION REQUIRED</h1>   
      </div>
      <div class="leaving-content clearfix">
      

         <div class="leaving-message">
           <form id="ajaxform" name="ajaxform" action="../php/process.php">
            <h1>You need Login to Acess this Area</h1>
            
            <div class="field clearfix">
               <label for="username">Username:</label>
               <input type="text" class="textfield" id="username" name="username" maxlength="32" value="">
            </div>
            <div class="field clearfix">
               <label for="password">Password:</label>
               <input type="password" class="textfield" id="password" name="password" maxlength="32" value="">
            </div>
            <input type="submit" id="btnsubmit" name="btnsubmit" value="login" class="btn btn-green" />
            
            <a href="project" target="_blank" id="link" name="link" alt="Go To Project" class="btn-link">Forgot password!</a>
            </form>
         </div>
      </div>
   </div>




Este mi codigo jquery


Código Javascript :

<script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script language="javascript">

//Begin main function 
jQuery(document).ready(function() {

//EN ESTA PARTE ES DONDE QUIERO IMPLEMENTAR LA VALIDACION 
//DE JQUERY

//SOLO QUE NO SE COMO ESTRUCTURAR LA FUNCIÓN PARA QUE PRIMERO VALIDE 
//Y LUEGO PROCESE LOS DATOS Y LA ANIMACION

//Begin ajax call
   $('#ajaxform').submit(function() {
    $('.loading').empty();
   
        $.ajax({
      
              type: 'POST',
                url: $(this).attr('action'),
                data: $(this).serializeArray(),
      //EVENTOS DE JQUERY AJAX PARA CARGAR LA ANIMACION PRIMERO Y LUEGO PROCESAR LOS DATOS
  
             beforeSend: function() 
                 {   
                  $('.loading-mask').fadeIn('slow'); 
                  $('.loading').fadeIn('slow');
                  $('.loading').append("<img src='images/ajax-loader.gif' /> loading...");                   
                }, 
            
             complete: function() 
                  {   
                  $('.loading-mask').fadeOut('slow'); 
                  $('.loading').fadeOut('slow');
               
               
               },
            
             success: function(data) 
                  { 
                     $('#result').fadeIn(1000).html(data)
                    
                }
      
              })
        
        return false;

    }); 
//End ajax call      
   
   
   
})  
//End main Function 




Muchas de antemano por su ayuda :oops: :wink: ^^

Por damien00

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 20 Nov 2014 03:43 pm
en esta funcion:

Código :

 success: function(data) 
                  { 
                     $('#result').fadeIn(1000).html(data)
                    
                }

Coloca el codigo que necesitas para despues de la validación... pero no nos adelantemos.

Primero necesitamos que el archivo PHP al que se manda la información del login, en caso de algun error (ya sea que este mal, sea invalido o lo quesea) vamos a regresar un error.

Trata de hacer en ese archivo PHP un array como el que sigue:

Código :

$respuesta = array("valido" => true, "mensaje" => "Todo Ok Bienvenido")


o si hay algun error

Código :

$respuesta = array("valido" => false, "mensaje" => "El usuario ingresado no existe");


Ya que tengamos la $respuesta solo debes plasmarla en JSON con el siguiente

Código :

echo json_encode($respuesta);


Atención: Trata de no imprimir otra cosa no debe existir otro echo, o print_r o var_dump() o error que se ponga en pantalla, lo unico que debe poder verse es el array $respuesta ya sea valido o no.


Muy bien no fue tan dificil verdad... Ahora de vuela a tu JavaScript

Código :

 $.ajax({
      
              type: 'POST',
                url: $(this).attr('action'),
                data: $(this).serializeArray(),  //<< no olvides la coma
            //Agrega esta linea nueva
                dataType: 'json'


y despues

Código :

success: function(data) 
                  { 
                     $('#result').fadeIn(1000).html(data)

                      //Vamos a comprobar que data.valido exista
                    alert("estado" + data.valido + "  con mensaje: " + data.mensaje);
                }



Y bueno por ahi ya puedes ir jugando, espero le entiendas a lo que trate de expresar.


Es muy importante en $.ajax() de Jquery especificar el datatype a JsON y en PHP imprimir un array con la funcion json_encode();

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 20 Nov 2014 08:54 pm
Hola que tal muchas pero muchas gracias por responder :D :) (y)

Por damien00

1 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.