Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/04/2014, 02:34
arqrym
 
Fecha de Ingreso: diciembre-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 7
Respuesta: clase phpmailer y ajax

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