Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/10/2008, 21:45
Avatar de tiranuss
tiranuss
 
Fecha de Ingreso: enero-2008
Mensajes: 30
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Procesos Ajax Simultaneos

gracias por contestar nuevamente,
el script php que llama el primer ajax (enviar.php) para realizar el envio de los correos es este, basicamente usa la clase phpmailer para los envios, actualiza la base poniendo si se envía o no y regresa una leyenda "Envios terminados" el finalizar el while.

Código:
<?php
include ("../../conexion.php");
$link=Conectarse();

require "phpmailer/class.phpmailer.php";
$mail = new phpmailer();

$mail->PluginDir = "phpmailer/";
$mail->SetLanguage("es","phpmailer/");
$mail->IsHTML(true);
$mail->IsSMTP(true);
$mail->Host = " ***.***.***.*** "; // Por seguridad no pondre la direccion de smtp
$mail->SMTPAuth = 'true';
$mail->Username = "admin"; //nombre usuario smtp
$mail->Password = "admin123"; // pass smtp

$query = mysql_query("SELECT * FROM empleados ") or die(mysql_error());

while ($dat = mysql_fetch_array($query)){

$mail->From = "[email protected]";
$mail->FromName = "Actualidades";

$mail->Timeout=20;

$mail->AddAddress($dat['email'],$dat['nombre']);

$mail->Subject = "Actualidades internas";
$mail->Body = " No tenemos actualidades en la empresa";

$email1 = $dat['email'];
$nombre = $dat['nombre'];

if(!$mail->Send())
{
mysql_query("Update empleados set status = 'rechazado' where email like '$email1' and nombre like '$nombre' ") or die(mysql_error());
}
else
{
mysql_query("Update empleados set status = 'enviado' where email like '$email1' and nombre like '$nombre' ") or die(mysql_error());
}

$mail->ClearAddresses();


};

echo "Envios Terminados";

?>
Todo funciona perfectamente, la base es actualizada correctamente, los correos son enviados y llegan a su destinatario perfectamente, mi unico inconveniente es el que no puedo actualizar en tiempo real la tabla de la pagina principal, para que vaya poniendo enviado o no enviado en la colunma status a medida que se van enviado y se va actualiando la base de datos.

al parecer no puedo hacer que los dos procesos ajax funcionen simultaneamente, si pudiera hacerlo se podría ver que mientras uno empezó y arrancó el script php para el envio de correos el otro actualiza la tabla mostrando los datos actualizados desde la base. y daria un efecto de actuaizacion en tiempo real.

o puede ser que como bien dices GatorV, este script no esté actualizando la base de datos a medida que envía, sino hasta que se termine totalmente el while, lo cual tambien me crea dudas porque en una lista grande de envios se almacenarían muchas respuestas para que finalmente al terminar el script se llene la base de datos con estos.
mmmm no se, no creo que pase esto, pero puede ser, me inclino mas a que mis llamadas ajax no trabajan juntas.

Última edición por tiranuss; 06/10/2008 a las 22:37