Tienes razón, pero es que no estaba en delante del ordenador:
Aquí lo envío(gestiono el form y la petición ajax):
Código HTML:
<head>
<meta charset="utf-8">
<title>Documento sin título</title>
<script type="text/javascript">
function nuevoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
</script>
<script type="text/javascript">
function newcontact(){
nuevoAjax();
var t1, t2, t3, t4, t5, contenedor;
contenedor = document.getElementById('form_new');
t1 = document.getElementById('nombre').value;
t2 = document.getElementById('correo').value;
t3 = document.getElementById('telefono').value;
t4 = document.getElementById('mensaje').value;
ajax=nuevoAjax();
ajax.open("GET", "ajax/ajaxpeticiones/formulario_contacto_insert.php?t1="+t1+"&t2="+t2+"&t3="+t3+"&t4="+t4,true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
contenedor.innerHTML = ajax.responseText
}
}
ajax.send(null)
}
</script>
<script type="text/javascript">
$(document).ready(function(){
$(document).click(function(newcontact){
if(e.target.id!='#form_new')
$('#form_new').hide();
});
});
</script>
</head>
<body>
<div id="form_new">
<form action="" name="contacto" id="contacto" title="Contacto">
<table width="">
<tr>
<td>
<input name="nombre" class="textbox" type="text" required="required" id="nombre" placeholder="Escriba su nombre" tabindex="1" title="nombre">
</td>
</tr>
<tr>
<td>
<input type="text" name="correo" class="textbox" required="required" id="correo" placeholder="Su email" tabindex="2" title="Email" >
</td>
</tr>
<tr>
<td>
<input name="telefono" class="textbox" type="text" required="required" id="telefono" placeholder="No teléfono" tabindex="3" title="nombre" >
</td>
</tr>
<tr>
<td>
<textarea name="mensaje" rows="4" class="textbox" maxlength="275" required wrap="soft" id="mensaje" placeholder="Escriba su mensaje..." title="Mensaje" tabindex="4"></textarea>
</td>
</tr>
<tr>
<td>
<input type="submit" onclick="newcontact()" name="entrar" value="Enviar consulta">
</td>
</tr>
</table>
</form>
</div>
</body>
y en este gestiono la inserción en la base de datos que no lo he puesto porque me va bien y el envío del correo:
Código HTML:
<?php
$nombre=$_GET['t1'];
$email=$_GET['t3'];
$telefono=$_GET['t4'];
$mensaje=$_GET['t5'];
?>
<?php
require_once('../../mail/includes/consulta.class.phpmailer.php');
$mail = new PHPMailer(); // defaults to using php "mail()"
$body = file_get_contents('../../mail/correos/consulta.html');
$body = eregi_replace("[\]",'',$body);
$body = str_replace('[nombre]',$nombre,$body);
$body = str_replace('[email]',$email,$body);
$body = str_replace('[telefono]',$telefono,$body);
$body = str_replace('[mensaje]',$mensaje,$body);
$mail->AddReplyTo("'$correo'","xxxx.com");
$mail->SetFrom('[email protected]', 'xxx.com');
$mail->AddAddress("[email protected]", "info");
$mail->Subject = "Nueva consulta ";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);
if(!$mail->Send()) {
} else {
echo "Message sent!";
}
?>
<div id="form_new">
<div class="consulta_enviada">
"Correo enviado"
</div>
</div>
Quiero que desaparezca el formulario y aparezca un mensaje de enviado.
Lo he estado probando y la primera vez que le doy al boton de enviar el form no me hace nada y la segunda vez me lo envia y me imprime mensaje del servidor que ha sido enviado y demás...
Espero que puedan ver lo que estoy haciendo mal.
Gracias de antemano