Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

meire2

Fazer varias chamadas em AJAX numa mesma pagina

Recommended Posts

Olá pessoal

 

é a primeira vez que utilizo um script com ajax e estou com uma dificuldade, nao estou conseguindo fazer varias chamadas numa mesma página.

Tenho uma chamada assincrona para carregar o conteudo de um DIV (cidade estado), e mais 2 outras para carregar outro 2 DIV diferente (seçao e subseçao) de um cadastro de empresa.

 

O PROBLEMA: todos eles funcionam, na ordem do cadastro chamo primeiro a SECAO que atualiza a SUBSECAO e no final o ESTADO que atualiza CIDADE so que qdo seleciono o ESTADO ele troca os valores do campo SUBSECAO. ou o inverso

 

Alguem pode dar uma olhada no codigo abaixo se estou fazendo certo??

 

Obrigada.

 

// iniciar

 

var req;

function loadXMLDoc(url){

req = null;

 

if (window.XMLHttpRequest) {

req = new XMLHttpRequest();

req.onreadystatechange = processReqChange;

req.open("GET", url, true);

req.send(null);

 

} else if (window.ActiveXObject) {

try {

req = new ActiveXObject("Msxml2.XMLHTTP.4.0");

} catch(e) {

try {

req = new ActiveXObject("Msxml2.XMLHTTP.3.0");

} catch(e) {

try {

req = new ActiveXObject("Msxml2.XMLHTTP");

} catch(e) {

try {

req = new ActiveXObject("Microsoft.XMLHTTP");

} catch(e) {

req = false;

}

}

}

}

if (req) {

req.onreadystatechange = processReqChange;

req.open("GET", url, true);

req.send();

}

}

}

 

function processReqChange(){

 

if (req.readyState == 4) {

if (req.status == 200) {

document.getElementById("atualiza_cidade").innerHTML = req.responseText;

document.getElementById("atualiza_subsecao").innerHTML = req.responseText;

} else {

alert("Houve um problema ao obter os dados:\n" + req.statusText);

}

}

}

 

 

function atualiza_subsecao(valor){

loadXMLDoc("secao_atualiza_subsecao.php?IDSUBSECAO="+valor);

}

 

function atualiza_cidade(valor){

loadXMLDoc("cidades.php?ID="+valor);

}

////

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Meire,

 

eu passei por esse problema e a solução que dei foi a seguinte:

 

cria um arquivo javascript (.js) com essas funções que fazem o AJAX acontecer,

de um include desse arquivo

 

CODE
<script src="arquivo.js"></script>

 

para cada chamada que você tem que dar, de um novo include a um novo arquivo .js

 

Tome o cuidado também de dar nomes diferentes para as variáveis "XMLHttpRequest" em cada arquivo que você criar.

 

Eu sei que é meio chato ter que criar um arquivo para chamada que você for dar, mas com certeza você resolverá o problema!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quer que uma resposta altere valor de duas áreas, você tem que utilizar XML, e manipular os nós recebidos.

Neste caso, você pega o retorno da requisição com req.responseXML.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.