meire2 0 Denunciar post Postado Março 17, 2008 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
Ricardo Andrietta 1 Denunciar post Postado Março 17, 2008 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
Marcio Leandro 0 Denunciar post Postado Março 17, 2008 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