Ir para conteúdo

POWERED BY:

Arquivado

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

Diegus Miestro

AJAX, carregando arquivo XML

Recommended Posts

Galera, estou apanhando aqui para pegar informações de um XML e passar para variáveis globais e assim ser usada por outras funções. Estava criando uma função que pegar informações de configuração e passar para variáveis globais; preferia que essas informações estivessem guardadas em XML e não em uma função Javascript. Alguém tem uma solução?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem um post aqui que explica utilizando funções nativas do PHP de como pegar as informações do XML e passar para o PHP. Espero que te ajude.

 

Link não autorizado removido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, FernandoPhP. Por PHP eu sei, eu estou querendo é apenas por Javascript. Usando Jquery eu consigo pegar, mas quando tentei passar para as variáveis globais ele perde os valores usei até alert na hora de pegar o XML, que aparece, e depois em outra função que pegar os valores das variáveis globais, que não encontrou valores. Passando os valores normalmente,

$variável = "Teste";

funciona, mas quando é por Ajax não passa pra global.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como AJAX é assíncrono, você precisa executar a rotina de tratamento do XML dentro do callback complete do jQuery ou usar deferred objects.

$.ajax({
  url: 'teste.xml',
  dataType: 'xml'
  complete: function(xml) {
 	// tratar o XML...
  }
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

Henrique Barcelos, não entendi :pinch:

 

Bem, meu código original já tá bagunçado então fiz um de teste. Ele fica em um arquivo .js e o XML em outro arquivo. Há um alert() dentro da chamada do Ajax que mostra os valores do XML, mas a chamada pela variável global não mostra:

 

XML:

<?xml version="1.0" encoding="UTF-8"?>

<root>

   <pessoas>
       <nome>Cicrano</nome>
       <profissao>Estagiário</profissao>        
   </pessoas>

</root>

 

JS:

var $PessoaA = new Array();
var $PessoaB = new Array();

function pegarInformacoes(){    
   $PessoaA[0] = "Fulano";
   $PessoaA[1] = "Estagiário";

   $.ajax({
       url: "./xml/teste.xml",
       dataType: "xml",
       success: function(xml){
           $(xml).find("pessoas").each(function(){
               $PessoaB[0] = $(this).find("nome").text();
               $PessoaB[1] = $(this).find("profissao").text();
               alert($PessoaB[0]+", "+$PessoaB[1]);
           })
       }
   })

}

function montarHTML(){

   var $destino = $("div#resultado");

   $destino.append("<p>Nome:" + $PessoaA[0] +"</p>");
   $destino.append("<p>Profissão:" + $PessoaA[1] +"</p>");
   $destino.append("<p>Nome:" + $PessoaB[0] +"</p>");
   $destino.append("<p>Profissão:" + $PessoaB[1] +"</p>");

}

$(function(){

   pegarInformacoes();
   montarHTML();

})

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.