Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Problema formulario jquery

Estas en el tema de Problema formulario jquery en el foro de Jquery en Foros del Web. Hola, estoy empezando con ajax y jquery. El formulario que quiero hacer es muy simple, para ver como funciona, pero por más que lo intento ...
  #1 (permalink)  
Antiguo 14/08/2012, 03:27
 
Fecha de Ingreso: octubre-2008
Mensajes: 32
Antigüedad: 16 años, 1 mes
Puntos: 0
Problema formulario jquery

Hola, estoy empezando con ajax y jquery. El formulario que quiero hacer es muy simple, para ver como funciona, pero por más que lo intento no me funciona (me devuelve [object Objet].

Sin más les pongo aquí el código:

Código HTML:
Ver original
  1. <form id="form1" action="process1.php" method="post" accept-charset="utf-8">
  2. <label for="pass">Pass: </label><input id="pass" name="pass" type="password"/>
  3. <input id="check" type="button" value="unlock"/>
  4. </form>

Código Javascript:
Ver original
  1. $('#check').on({
  2.     click: function() {
  3.     var pass=$('#form1').serialize();
  4.     var lock= $.ajax({
  5.             url: 'process1.php',
  6.             type: 'POST',
  7.             data: pass,
  8.             async: false,
  9.             beforeSend: function (obj) {$('#load').html('<img alt="loading" src="img/loading.gif">');},
  10.             complete: function(obj,check) {if (check!="success") $('#load').html('Error').addClass('imp2');},
  11.             success: function() {$('#load').html('');}
  12.     });
  13.     alert(lock);
  14.     //$('#load').html(lock);
  15.     $('#form2>input').removeAttr('disabled');
  16.     $('#form2>textarea').removeAttr('disabled');
  17.     $('#form1>input').attr('disabled','disabled');
  18.     }
  19. });

Código PHP:
Ver original
  1. //define password
  2. define("PASS","1234");
  3.  
  4. //Get post data
  5. $pass=$_POST["pass"];
  6.  
  7. //Development
  8.  
  9.     if (isset($pass))
  10.     {
  11.         if ($pass==PASS)
  12.             return 1;
  13.         else
  14.             return 0;
  15.     }

He probado a poner $_GET['pass'] pero nada...

Es muy simple pero no soy capaz :( es que me introduzca una contraseña y asi desbloquear otro formulario que tengo. El código javascript tendría que ser mas o menos así (el otro que puse es para probar que me devolvía para ver donde fallaba).

Código Javascript:
Ver original
  1. $('#check').on({
  2.     click: function() {
  3.     var pass=$('#form1').serialize();
  4.     var lock= $.ajax({
  5.             url: 'process1.php',
  6.             type: 'POST',
  7.             data: pass,
  8.             dataType: text,
  9.             async: false,
  10.             beforeSend: function (obj) {$('#load').html('<img alt="loading" src="img/loading.gif">');},
  11.             complete: function(obj,check) {if (check!="success") $('#load').html('Error').addClass('imp2');},
  12.             success: function() {$('#load').html('');}
  13.     });
  14.         if (!lock)
  15.             $('#load').html('Error').addClass('imp2');
  16.         else
  17.         {
  18.         $('#form2>input').removeAttr('disabled');
  19.         $('#form2>textarea').removeAttr('disabled');
  20.         $('#pass').html('');
  21.         $('#form1>input').attr('disabled','disabled');
  22.         }
  23.     }
  24. });

Si le pongo DataType: text ya no me funciona... lo único que quiero recoger es 1 o 0..

Gracias por adelantado
  #2 (permalink)  
Antiguo 14/08/2012, 06:38
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 8 meses
Puntos: 47
Respuesta: Problema formulario jquery

Prueba asi:

Código Javascript:
Ver original
  1. $.ajax({
  2.             url: 'process1.php',
  3.             type: 'POST',
  4.             data: pass,
  5.             async: false,
  6.             beforeSend: function (obj) {$('#load').html('<img alt="loading" src="img/loading.gif">');},
  7.             complete: function(obj,check) {if (check!="success") $('#load').html('Error').addClass('imp2');},
  8.             success: function(respuesta) {
  9.                 $('#load').html('');
  10.                 var lock = respuesta;
  11.             }
  12.         });

Saludos
  #3 (permalink)  
Antiguo 14/08/2012, 07:46
 
Fecha de Ingreso: octubre-2008
Mensajes: 32
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema formulario jquery

Gracias por la respuesta pero sigue sin funcionarme... ahora no me hace nada (no me desbloquea el formulario 2 ni me muestra el alert)... como puedo pasar la información de un input mediante ajax y jquery?

El problema es que no recibo una respuesta por parte de php.... nose porque pero es así porque javascript se para en var lock=resp;


-----------------------------------------------------------------------------------------------------------------------------------------------------


Funciona como tu dices, pero tienes que declarar la variable lock como global (antes de $(#check).on )

Última edición por Tik3r; 14/08/2012 a las 08:24
  #4 (permalink)  
Antiguo 14/08/2012, 08:54
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 8 meses
Puntos: 47
Respuesta: Problema formulario jquery

Aver vamos a mejorarlo un poco mas es extraño que no te funcione te pongo el codigo que usario yo digamos el que uso siempre je aver:

Código HTML:
Ver original
  1. <form id="form1" action="process1.php" method="post" accept-charset="utf-8">
  2.     <label for="pass">Pass: </label><input id="pass" name="pass" type="password"/>
  3.     <input type="button" value="unlock" onclick="enviar();"/>
  4.     </form>

Código Javascript:
Ver original
  1. function enviar() {
  2.     $.ajax({
  3.         url: 'process1.php',
  4.         type: 'POST',
  5.         data: {pass:$("#pass").val()},
  6.         success: function(respuesta) {
  7.             alert(respuesta);
  8.             }
  9.         });
  10.     }

Prueba con esto, esta reducido al punto que puedas obtener la respuesta de tu php y veas bien como funciona, deberia funcionarte de lo mas bien, fijate que al html le agregue el evento en el onclick del boton, el codigo de javascript debe estar dentro del head, pruebalo y nos cuentas como te fue.

Edit: y la data la pase como un objeto donde el atributo pass (lo mismo que el name de un campo del formulario para php) es igual al elemento (pass).val() (su valor)

Saludos
  #5 (permalink)  
Antiguo 14/08/2012, 13:29
 
Fecha de Ingreso: octubre-2008
Mensajes: 32
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema formulario jquery

Gracias!! lo puse como dijiste y funciona ^^

Etiquetas: ajax, formulario, funcion, html, input, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:42.