Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: pisagatos en 22 Julio 2010, 14:35 pm



Título: Validar formulario PHP con JQUERY
Publicado por: pisagatos en 22 Julio 2010, 14:35 pm
Muy buenas tardes!!! Como estamos!!!

Tengo un formulario de contacto en una página web, el cual se le pide al usuario rellenar: nombre, correo electrónico y mensaje.

Para mostrar este formulario uso Jquery con la función load(), es decir, tengo un index que muestra un enlace al formulario, y esta muestra el formulario, que es otra página aparte llamada contacto.

Lo que he intentado, sin éxito, es que esos datos que rellena el usuario los vuelva a enviar a la página contacto.php para validar esos datos en PHP y en caso que haya error retorne los errores correspondientes en el mismo formulario.

No sé si me explico bien, pero dejo un esquema por si no se entiende...

(http://r.i.elhacker.net/cache?url=http://www.pisagatos.com/fotos/explicacion.jpg)

He probado con:

Código:
	$.ajax
({
 url: "contacto.php",
 async: true,
 cache: false,
 global: false,
 type: "POST",
 data: ({nombre : $('#nombre').val()}),
 dataType: "html",
 success: $("#contenedorDIV").responseText,
}).responseText;

pero no sé usarlo o no me funciona....

Mi idea es VALIDAR CON PHP, q tiene algun error lo dice en el mismo formulario, q no tiene ningún error pues envía los datos....

A ver si alguien me echa una mano!!  ;-)
Muchas gracias


Título: Re: Validar formulario PHP con JQUERY
Publicado por: MazarD en 22 Julio 2010, 15:26 pm
Success espera una función y no deberías utilizar el responseText de $.ajax si luego no lo vas a asignar a ninguna variable, prueba así:

Código
  1. [pre] $.ajax
  2. ({
  3.  url: "contacto.php",
  4.  async: true,
  5.  cache: false,
  6.  global: false,
  7.  type: "POST",
  8.  data: ({nombre : $('#nombre').val(), mensaje: $('#aquiinputmensaje').val()}),
  9.  dataType: "html",
  10.  success: function (data) {
  11.                        alert(data);  //Testeando ando
  12.                        $("#contenedorDIV").html(data);
  13.  
  14.                   }
  15. });[/pre]


Otra forma equivalente sin utilizar el success y usando el responseText como hacías sería:

Código
  1. [pre] $("#contenedorDIV").html(
  2.        $.ajax
  3.    ({
  4.  url: "contacto.php",
  5.  async: true,
  6.  cache: false,
  7.  global: false,
  8.  type: "POST",
  9.  data: ({nombre : $('#nombre').val(), mensaje: $('#aquiinputmensaje').val()}),
  10.  dataType: "html",
  11.     }).responseText
  12.    );[/pre]
  13.  


Saludos!



Título: Re: Validar formulario PHP con JQUERY
Publicado por: pisagatos en 24 Julio 2010, 15:24 pm
Muchas graciass MazarD!!

Me ha servido tio! El problema es que funciona en Firefox perfectamente, pero en IE no le hace ni pu** caso... este código he puesto

Código
  1.  
  2. $('#btnEnviar').click(function()
  3. {
  4. alert('Holaaaa');
  5. $.ajaxSetup({cache: false});
  6. $.ajax
  7. ({
  8. url: "./contacto.php",
  9. async: true,
  10. cache: false,
  11. global: false,
  12. type: "POST",
  13. data: ({nombre : $('#nombre').val(), correo: $('#correo').val(), mensaje: $('#mensaje').val()}),
  14. dataType: "html",
  15. success: function (data)
  16. {
  17. $("#divTXT").html(data);
  18. }
  19. });
  20. });

En firefox perfecto! En IE, no le hace ni caso, le pulso el botón y ni hace el alert ni continua con el $.ajax

¿Qué estoy poniendo mal? Una mano!!
Muchas gracias!!  ;-) ;-)


Título: Re: Validar formulario PHP con JQUERY
Publicado por: pisagatos en 24 Julio 2010, 16:53 pm
Ya está solucionado!!

El problema está en que parece ser que no es lo mismo para IE cuando pones:

Código
  1. <script type="aplication/javascript" charset="utf-8">

que poner...

Código
  1. <script type="text/javascript" charset="utf-8">

Por si a alguien le sirve... aquí tmb hablan de este tema:
http://www.bdaley.com/2009/03/28/applicationjavascript-vs-textjavascript/

Con la segunda forma me ha funcionado perfectamente!!  :laugh: