Pessoas, Um cliente me pediu para fazer um formuláriozinho onde ele pudesse enviar um comunicado para os usuários do site, ele tinha uma versão anterior onde era orbigado a selecionar 50 por vez e ficar acionando o botão. Resolvi então fazer uma funcionalidade utilizando ajax. O problema é que só envia uma unica vez e apenas para uma pessoa. Se eu limpo o cache do browser e tentop de novo ele envia. já coloquei algumas flags onde eu mudo a informação enviada e sei que foi enviada para a função corretamente, mas o retorno é como se eu tivesse enviado d enovo a mesma coisa, e pior.. não envia. :blink: Segue o código das funções de ajax: /////////////////////////////////////////////////////////////////////////
//Função que cria o objeto de requisição e retorna para a função que vai
//fazer a requisição da página
//////////////////////////////////////////////////////////////////////////
function getObjectHttp(){
var m_xmlhttp;
try {
m_xmlhttp = new XMLHttpRequest();
} catch (e) {
try {
m_xmlhttp = new ActiveXObject("Msxml2.XMLHTTP")
} catch(e) {
var success = false;
var MSXML_XMLHTTP_PROGIDS = new Array(
'Microsoft.XMLHTTP',
'MSXML2.XMLHTTP',
'MSXML2.XMLHTTP.5.0',
'MSXML2.XMLHTTP.4.0',
'MSXML2.XMLHTTP.3.0'
);
for (var i=0;i < MSXML_XMLHTTP_PROGIDS.length && !success; i++) {
try {
m_xmlhttp = new ActiveXObject(MSXML_XMLHTTP_PROGIDS[i]);
success = true;
} catch (e) {
m_xmlhttp = null;
}
}
}
}
return m_xmlhttp;
}
function delObjectHttp(obj){
if(obj)
delete(obj);
}
/////////////////////////////////////////////////////////////////////////
//Funções para fazer a requisição de página
//////////////////////////////////////////////////////////////////////////
function requestPage(url, destino, execafter, msg){
if(msg)destino.innerHTML = "<br><br><span class=mensagemajax>carregando...</span><br><br>"
var objhttp = new getObjectHttp();
if(objhttp){
objhttp.open("GET",url,true);
objhttp.onreadystatechange=function() {
if (objhttp.readyState==4) {
if (objhttp.status == 200){
alert(objhttp.responseText);
destino.innerHTML = objhttp.responseText;
//destino.innerHTML = "Enviado e-mail " + (cont + 1) + " de " + vetEmail.length;
delObjectHttp(objhttp);
if(execafter) after_request();
}
else{
destino.innerHTML = "<br><br><span class=mensagemajax>ERRO cod 02</span><br><br>"
}
}
}
objhttp.setRequestHeader('Accept','message/x-jl-formresult');
objhttp.setRequestHeader("Content-type", "text/html;application/x-www-form-urlencoded");
objhttp.setRequestHeader("Connection", "close");
objhttp.send(null);
}
else{
destino.innerHTML = "<br><br><span class=mensagemajax>ERRO cod 01</span><br><br>";
}
return false;
}
e agora a parte onde eu chamo varias vezes mudando o e-mail destino:
function sendMail(){
//document.getElementById("destMsg").innerHTML += "<br>Enviando email 1 de " + vetEmail.length + " ";
Cookie_Expire("destino");
Cookie_Set("destino", vetEmail[cont]);
alert(Cookie_Get("assunto") + " - " + Cookie_Get("destino"));
//document.getElementById("destMsg").innerHTML = "../_funcoes/auto_mail.asp?destino=" + vetEmail[cont] + "&assunto=" + document.frmAvaliacao.edtAssunto.value + "&corpo=" + document.frmAvaliacao.edtTexto.value + "&txtMensagem=Enviado";
requestPage("../_funcoes/auto_mail.asp?destino=" + vetEmail[cont],document.getElementById("destMsg"),true,"");
//alert("../_funcoes/auto_mail.asp?destino=" + vetEmail[cont] + "&assunto=" + document.frmAvaliacao.edtAssunto.value + "&corpo=" + document.frmAvaliacao.edtTexto.value + "&txtMensagem=Enviado");
}
function after_request(){
cont++;
if (cont < vetEmail.length){
sendMail();
}
else {
//document.getElementById("destMsg").innerHTML = "ENVIO CONCLUÍDO";
Cookie_Expire("destino");
Cookie_Expire("assunto");
Cookie_Expire("corpo");
}
} Não sei mais o que testar. Alguém tem alguma sugestão ?? Eu na realidade hoje estou "aposentado", sou programador da época no notepad ainda.. então não uso nenhuma ferramenta decente de depuração.. é terrivel achar um erro desse jeito.. agradeço muito qualquer ajuda... Obrigado