Ir para conteúdo
Fórum Script Brasil
  • 0

Problema para trabalhar com a resposta Xml em ajax


Guest Roberto Morais

Pergunta

Guest Roberto Morais

Bom pessoa estou com um probleminha estou estudando ajax aqui e estou tentando capturar os valores de um nodo de um objeto xml com responseText consigo traze-los, mas quado uso o responseXML a resposta aparece undefined embora o resultado seja reconhecido como objeto xml segue o código para uma forçinha básica. o tratamento está na função alertContents() o problema está na linha

var pesquisa = resultado.getElementsByTagName("pessoa")[0];
      var resNode = pesquisa.childNodes[0].nodeValue; //erro aparece null
       alert(resNode);
A estrutura de resposta xml é essa:
<pessoa>
         <id>i1</id>
         <nome>fulano</nome>
         <sobrenome>da silva</sobrenome>
         <idade>25</idade>
   </pessoa>
O código está aqui!
<html>
<head>
<title>Documento sem t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/xml; charset=iso-8859-1"> 
<script type="text/javascript" language="javascript">
    var http_request = false;
    var resultado = null; 
    function makeRequest(url) {
        http_request = false;
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
                if (http_request.overrideMimeType) {
                    http_request.overrideMimeType('text/xml');
                // See note below about this line
                }
        } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
            }catch (e) {
                        try {
                            http_request = new ActiveXObject("Microsoft.XMLHTTP");
                        }catch (e) {}
           }
       }
       if (!http_request) {
               alert('Giving up :( Cannot create an XMLHTTP instance');
       }
       http_request.onreadystatechange = alertContents; 
       http_request.open('GET', url, true);
       http_request.send(null);
    }
    function alertContents() {
        if (http_request.readyState == 4) { 
            if (http_request.status == 200) {
                resultado = http_request.responseXML
                if(!resultado){
                  alert("resultado nulo!");
                }else{
                      
                      
                      var pesquisa = resultado.getElementsByTagName("pessoa")[0];
                      var resNode = pesquisa.childNodes[0].nodeValue; //quero pegsr o id
                       alert(resNode);                  
                                         
                 }
            }
        } else {
            alert('There was a problem with the request.'); 
        }
    }
    
</script>
</head>

<body>
<form name="form1">
<input name="bt1" type="button" value="ajax" id="bt1" onClick="makeRequest('teste.php?id=2')">
<input name="text1" type="text" size="30" id="text1" maxlength="30">
<input name="text2" type="text" size="30" id="text2" maxlength="30">
<input name="text3" type="text" size="30" id="text3" maxlength="30">
<input name="text4" type="text" size="30" id="text4" maxlength="30">
<div align="center" id="div_conteudo"></div>
</form>

</body>
 </html>

um abraço!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Gostaria que você me tirasse uma dúvida antes:

var resNode = pesquisa.childNodes[0].nodeValue; //erro aparece null

Quando você retira o nodeValue e coloca o nodeName, o que acontece? Aparece null também?

Outra coisa, esse erro acontece nos dois navegadores ou só no iE?

Abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...