mas sem sucesso... =/
alguem poderia me dizer mais ou menos onde encaixar o abort? desculpe a ignorancia, mas sou mto novo no ajax ainda
function selectAjax(valor,selectname,opcoesid,arqPHP,msg,valorIni,teste) {
//verifica se o browser tem suporte a ajax
try {
teste = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e) {
try {
teste = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(ex) {
try {
teste = new XMLHttpRequest();
//var teste = createXMLHttp();
}
catch(exc) {
alert("Esse browser não tem recursos para uso do Ajax");
teste = null;
}
}
}
//se tiver suporte ajax
if(teste) {
//deixa apenas o elemento 1 no option, os outros são excluídos
document.getElementById(selectname).options.length = 1;
idOpcao = document.getElementById(opcoesid);
teste.open("POST", arqPHP, true);
teste.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
teste.onreadystatechange = function() {
//enquanto estiver processando...emite a msg de carregando
if(teste.readyState == 1) {
if(valorIni==undefined){
idOpcao.innerHTML = "Aguarde...";
}
}
//após ser processado - chama função processXML que vai varrer os dados
if(teste.readyState == 4 ) {
if(teste.responseXML) {
processXML(teste.responseXML,selectname,opcoesid,msg,valorIni);
}
else {
//caso não seja um arquivo XML emite a mensagem abaixo
//idOpcao.innerHTML = msg;
}
}
}
//passa o código do estado escolhido
var params = "id="+valor;
teste.send(params);
}
}
function processXML(obj,selectname,opcoesid,msg,valorIni){
//pega a tag cidade
var dataArray = obj.getElementsByTagName("it1");
//total de elementos contidos na tag cidade
document.getElementById(selectname).remove(0);
if(dataArray.length > 0) {
//percorre o arquivo XML paara extrair os dados
for(var i = 0 ; i < dataArray.length ; i++) {
var item = dataArray[i];
//contéudo dos campos no arquivo XML
var codigo = item.getElementsByTagName("it2")[0].firstChild.nodeValue;
var descricao = item.getElementsByTagName("it3")[0].firstChild.nodeValue;
//idOpcao.innerHTML = msg;
//cria um novo option dinamicamente
var novo = document.createElement("option");
//atribui um ID a esse elemento
novo.setAttribute("id", opcoesid);
if(codigo==valorIni)novo.setAttribute("selected", "selected");
//atribui um valor
novo.value = codigo;
//atribui um texto
novo.text = descricao;
//finalmente adiciona o novo elemento
document.getElementById(selectname).options.add(novo);
}
}
else {
//caso o XML volte vazio, printa a mensagem abaixo
idOpcao.innerHTML = "Erro";
}
}