Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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:


$.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 (javascript) [Seleccionar]

[pre] $.ajax
({
 url: "contacto.php",
 async: true,
 cache: false,
 global: false,
 type: "POST",
 data: ({nombre : $('#nombre').val(), mensaje: $('#aquiinputmensaje').val()}),
 dataType: "html",
 success: function (data) {
                        alert(data);  //Testeando ando
                        $("#contenedorDIV").html(data);

                   }
});[/pre]


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

Código (javascript) [Seleccionar]

[pre] $("#contenedorDIV").html(
        $.ajax
    ({
 url: "contacto.php",
 async: true,
 cache: false,
 global: false,
 type: "POST",
 data: ({nombre : $('#nombre').val(), mensaje: $('#aquiinputmensaje').val()}),
 dataType: "html",
     }).responseText
    );[/pre]


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 (javascript) [Seleccionar]

$('#btnEnviar').click(function()
{
alert('Holaaaa');
$.ajaxSetup({cache: false});
$.ajax
({
url: "./contacto.php",
async: true,
cache: false,
global: false,
type: "POST",
data: ({nombre : $('#nombre').val(), correo: $('#correo').val(), mensaje: $('#mensaje').val()}),
dataType: "html",
success: function (data)
{
$("#divTXT").html(data);
}
});
});


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 (javascript) [Seleccionar]
<script type="aplication/javascript" charset="utf-8">

que poner...

Código (javascript) [Seleccionar]
<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: