Foros del Web » Programando para Internet » Javascript »

responseText no funciona

Estas en el tema de responseText no funciona en el foro de Javascript en Foros del Web. Hola estoy tratando de que por medio de ajax envíe un correo electrónico con php, en mi formulario únicamente hay un input tipo mail en ...
  #1 (permalink)  
Antiguo 26/04/2015, 22:52
Avatar de MLDGATO  
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años, 1 mes
Puntos: 2
Pregunta responseText no funciona

Hola estoy tratando de que por medio de ajax envíe un correo electrónico con php, en mi formulario únicamente hay un input tipo mail en el cual escribo el correo la cosa es que cuando ingreso a la página y escribo el correo este se envía y me muestra un alert indicando que lo envié pero si escribo otro ya no hace nada aparentemente, ya qe el correo si es enviado pero el alert no se despliega, ese es le código que estoy utilizando

Código HTML:
Ver original
  1. <form id="Administrar" name="Administrar" method="post" onSubmit="javascript:invitarProceso(<?php echo $elUsuario; ?>, Email.value, <?php echo $laplaza; ?>)">
  2. <p><label for="email">Email:</label></p>
  3.                 <p><input name="Email" type="email" required="required" class="datos" id="Email" form="Administrar" placeholder="Escriba un email"/></p>
  4.                 <p><table><tr><td><input name="submit" type="submit" class="btnLogin" id="submit" value="Enviar"></td></tr></table></p>
  5. </form

Al iniciar el evento onSubmit me llama a esta función de javascrip la cual tiene el ajax

Código Javascript:
Ver original
  1. function invitarProceso(usuario, correo, plaza)
  2.     {
  3.         if(correo != "")
  4.         {
  5.             if(/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(correo))
  6.             {
  7.                 var invitar;
  8.                 if(window.XMLHttpRequest)
  9.                 {
  10.                     invitar = new XMLHttpRequest();
  11.                 }
  12.                 else
  13.                 {
  14.                     invitar = new ActiveXObject("Microsoft.XMLHTTP");
  15.                 }
  16.                 invitar.onreadystatechange=function()
  17.                 {
  18.                     if(invitar.readyState==4 && invitar.status==200)
  19.                     {
  20.                         alert(invitar.responseText);
  21.                     }
  22.                 }
  23.                 invitar.open("GET","../Email/invitacion.php?usuario="+usuario+"&correo="+correo+"&plaza="+plaza,true);
  24.                 invitar.send();
  25.             }
  26.             else
  27.             {
  28.                 alert('No ha escrito una dirección de email válido');
  29.             }
  30.         }
  31.         else
  32.         {
  33.             alert('Ha dejado el campo en blanco, por favor escriba una dirección de correo electrónico');
  34.         }
  35.     }

Dicha información es enviada al archivo invitación.php

Código PHP:
Ver original
  1. $mail = new phpMailer();
  2.             $mail->Host = "mail.suministra.net"; // SMTP server
  3.             $mail->FromName = $usuarios['Nombres']." ".$usuarios['Apellidos'];
  4.             $mail->From = $usuarios['Email'];
  5.             $mail->Subject = $titulo;
  6.             $mail->addAddress($correo);
  7.             $mail->msgHTML($mensaje);
  8.             $mail->CharSet = 'UTF-8';
  9.             if($mail->Send())
  10.             {              
  11.                 mysqli_close($conexion);
  12.                 echo "Se envió el correo de invitación a ".$correo." Existosamente.";
  13.             }
  14.             else
  15.             {
  16.                 mysqli_close($conexion);
  17.                 echo "Ha ocurrido un error, no se ha podido enviar el correo a ".$correo." por favor intente más tarde.";
  18.             }

Paea enviar el correo utilizo la clase phpmailer y como digo solo la primera vez me funciona el alert luego si envia los correos pero no hay alert

Muchas gracias.
  #2 (permalink)  
Antiguo 27/04/2015, 00:18
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: responseText no funciona

Prueba hacer un retorno en onSubmit:

Código HTML:
Ver original
  1. onSubmit="return invitarProceso(...)"
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #3 (permalink)  
Antiguo 27/04/2015, 13:05
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: responseText no funciona

El codigo no tiene sentido porque en el form pones metodo POST y en tu AJAX pones metodo GET.

Deberias quitar el method y el onsubmit del form

Código HTML:
Ver original
  1. <form id="Administrar" name="Administrar">

Luego reemplazar el submit por un boton y aqui poner un evento onclick

Código HTML:
Ver original
  1. <input name="submit" type="button" class="btnLogin" id="submit" value="Enviar" onclick="invitarProceso(<?php echo $elUsuario; ?>, Email.value, <?php echo $laplaza; ?>)">

saludos

Etiquetas: ajax
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 23:39.