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
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í:
[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:
[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!
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
$('#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!! ;-) ;-)
Ya está solucionado!!
El problema está en que parece ser que no es lo mismo para IE cuando pones:
<script type="aplication/javascript" charset="utf-8">
que poner...
<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: