Foros del Web » Programando para Internet » PHP »

clase phpmailer y ajax

Estas en el tema de clase phpmailer y ajax en el foro de PHP en Foros del Web. Buenas: Estoy realizando mediante un formulario ajax,php y la clase phpmailer un formulario y que al ingresar le envía al propietario un correo de la ...
  #1 (permalink)  
Antiguo 08/04/2014, 02:05
 
Fecha de Ingreso: diciembre-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 7
clase phpmailer y ajax

Buenas:

Estoy realizando mediante un formulario ajax,php y la clase phpmailer un formulario y que al ingresar le envía al propietario un correo de la consulta. Todo funciona bien, pero cuando se envía desaparece el formulario y aparece un mensaje de agradecimiento y tb los mensajes del servidor que el email ha sido enviado correctamente..y esto último es lo que no quiero que salga. El script del envío del mail está en el archivo php que de la función ajax.

Como hago que desaparezca esa impresión por parte del servidor que ha sido enviado correctamente...

Gracias de antemano.

Saludos
  #2 (permalink)  
Antiguo 08/04/2014, 08:42
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 5 meses
Puntos: 379
Respuesta: clase phpmailer y ajax

Cita:
Iniciado por arqrym Ver Mensaje
Buenas:

Estoy realizando mediante un formulario ajax,php y la clase phpmailer un formulario y que al ingresar le envía al propietario un correo de la consulta. Todo funciona bien, pero cuando se envía desaparece el formulario y aparece un mensaje de agradecimiento y tb los mensajes del servidor que el email ha sido enviado correctamente..y esto último es lo que no quiero que salga. El script del envío del mail está en el archivo php que de la función ajax.

Como hago que desaparezca esa impresión por parte del servidor que ha sido enviado correctamente...

Gracias de antemano.

Saludos
Para que alguien te pueda orientar es necesario que incluyas el código que estas usando o que seas mas detallado con la situación, ya que nadie tiene el tiempo para estar adivinando los posibles escenarios que involucra tu problema.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 10/04/2014, 02:34
 
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
  #4 (permalink)  
Antiguo 10/04/2014, 15:24
 
Fecha de Ingreso: diciembre-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 7
Respuesta: clase phpmailer y ajax

Sigo intentándolo y parecía que se había solucionado porque desapareció el form, pero ha vuelto a pasar. Alguien sabe si está en la parte de ajax que hace que desaparezca unas veces y otras no??

Gracias de antemano..

Etiquetas: ajax, clase, formulario, phpmailer
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:24.