..:: MX Studio Fóruns ::..: Ajax: Obter XML com php, sendo que ele vem do Ajax - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Ajax: Obter XML com php, sendo que ele vem do Ajax

#1 User is offline   Thompson 

  • Group: Membros
  • Posts: 616
  • Joined: 17-February 04

Posted 13 March 2007 - 07:48 PM

Falaí, galera!

Faz tempo que não posto.. hora de tirar a poeira e as teias de aranha hehe

Serei breve em minha dúvida, se vocês precisarem de mais código eu passo aqui.

Lá vai: suponha q vc tem o xml abaixo guardado numa variável java script:


CODE
var xml = "<familia>" +
                    "<mae>Maria</mae>" +
                    "<pai>Joao</pai>" +
                    "<filho>Jose</filho" +
               "</familia>";


Simples, né? Pois bem, agora suponha que vc tenha um objeto XMLHttpRequest chamato xmlHttp. Suponha também que você vai passar este xml para a página pegaxml.php, visando fazer algo com este xml:

CODE
xmlHttp.open("POST", "pegaxml.php", true)
xmlHttp.onreadystatechange = volta;
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send(xml);


Muito bem, mandamos o xml pra página pegaxml.php via método POST, como podem ver.


Eis minha simples questão: como diabos eu pego esse xml na minha página php? É algum $_POST? Como pegar esse xml??

Agradeço qualquer ajuda, pois no livro que estou lendo a respeito tem como fazer isso com JSP, mas não com php. Procurei pela net e só achei método GET ou método POST com variáveis, mas não com xml.

Valeu, galera biggrin.gif
0

#2 User is offline   Dark Neo 

  • Group: Membros
  • Posts: 507
  • Joined: 04-June 05

Posted 14 March 2007 - 12:06 PM

amigo ve se isso te serve de alguma coisa....

pegue aki

abraço!!
0

#3 User is offline   Thompson 

  • Group: Membros
  • Posts: 616
  • Joined: 17-February 04

Posted 14 March 2007 - 05:17 PM

hummmm... o artigo não vai direto ao ponto q eu to procurando, mas acho q aí deve ter a resposta pro q eu procuro. vou dar uma estudada!! valeu, cara!! biggrin.gif
0

#4 User is offline   RafaJaques 

  • Group: Moderadores
  • Posts: 549
  • Joined: 20-December 05

Posted 14 March 2007 - 08:04 PM

Não entendi exatamente o que você quis dizer...


Você quer pegar algo na página em php?

Mas o ajax é pra puxar os dados pro lado do cliente e o resultado você mostra na tela...

Ou então tenta dar um alert de xmlHttp.responseText, que é o que o servidor retorna pra tua função ajax...
0

#5 User is offline   chackal_sjc 

  • Group: Membros
  • Posts: 260
  • Joined: 09-August 04

Posted 15 March 2007 - 01:34 AM

eu fiz uns tutoriais sobre AJAX E PHP no meu blog.. dê uma procurada por lá..

www.felipetonello.com
0

#6 User is offline   Thompson 

  • Group: Membros
  • Posts: 616
  • Joined: 17-February 04

Posted 15 March 2007 - 01:38 AM

Mew, é isso mesmo. Eu quero pegar os dados q vem do ajax na página php.

Assim como é possível mandar dados pro PHP via POST ou GET, dá pra mandar XML também, só que via POST apenas.

O método send() do objeto XMLHttpRequest aceita "null", que é quando vc ou faz uma requisição simples pra página PHP ou então manda dados pra ela via GET, e aceita uma string também que é quando vc passa algum dado via POST. Dá pra passar um XML através desse método send(), e é isso que eu to fazendo nesse script... Só que minha dúvida é como pegar esse XML na página PHP.

Por exemplo.... se eu fizesse

CODE
var string = "nickname=thompson&forum=mxstudio";
.
.
.
xmlHttp.send(string);


eu conseguiria pegar a variável "nickname" com $_POST['nickname'] e a variável "forum" com $_POST['forum'], pq eu mandei esses parâmetros via POST pra minha página PHP.
Mas, suponha que a minha var "string" seja um xml... como pegá-lo na página php? Sacou?

Essa é minha dúvida... biggrin.gif
0

#7 User is offline   Thompson 

  • Group: Membros
  • Posts: 616
  • Joined: 17-February 04

Posted 15 March 2007 - 01:47 AM

Chackal, eu também já havia procurado no seu blog a respeito.... lá só tem tutorial pra usar ajax com método GET, ainda to esperando como usar com método POST q é o q eu quero aqui hehehehe

Aliás, animal o seu blog... curti bastante. biggrin.gif
0

#8 User is offline   Thompson 

  • Group: Membros
  • Posts: 616
  • Joined: 17-February 04

Posted 15 March 2007 - 11:23 AM

DESCOBRI!!! hehehe

Ontem mesmo, quando postei minha última mensagem, eu resolvi fazer um teste bobo... ao invés de mandar como xmlhttp.send(xml);, eu mandei como xmlhttp.send("xml=" + xml); e deu certo! Consegui pegar o xml fazendo $_POST['xml']!!

O que, se pensarmos direito, nada mais óbvio.. o xml q eu to passando também é uma string, só faltava atribuí-lo a uma variável.

Se bem que eu imagino que poderia ter pego este xml fazendo $_POST[0] também.

Mas enfim, deu certo aqui! Valeu pela ajuda de todos ^^
0

#9 User is offline   Firemaster 

  • Group: Membros
  • Posts: 1410
  • Joined: 14-September 04

Posted 15 March 2007 - 10:52 PM

Você ler uma string XML, principalmente enviada do JAVASCRIPT pro PHP dá uma trabalhão, por isso, é mais fácil fazer isso através de JSON, que é uma descrição de dados em um padrão mais legível que pode ser decodificado e codificado tanto pelo PHP quando pelo JAVASCRIPT, transformando os dados em objetos, arrays, strings, enfim. É a alternativa para o transporte em XML, que demanda mais recursos tanto do cliente quando do servidor para parsear e montar a estrutura do XML. XML hoje só é recomendável se você for LER (apenas ler) com o AJAX, ou abrir um arquivo XML com o PHP, que aliás, no php5 ficou muito mais fácil. Enfim, fica a dica, JSON.

[]'s
0

#10 User is offline   Thompson 

  • Group: Membros
  • Posts: 616
  • Joined: 17-February 04

Posted 16 March 2007 - 11:06 AM

Fire, obrigado pela dica! Vi o post hoje, mas logo depois de postar minha dúvida eu prossegui na leitura do livro e a próxima parte do livro falava exatamente sobre JSON.
Fucei no site deles www.json.org e tem um monte de informação legal lá, explicando a estrutura e como se usa. Realmente parece uma alternativa bem enxuta quando se trata de muitos dados sendo trafegados.
A única "desvantagem" que vi é que parece que não é possível criar subnós no JSON, como costumamos criar em xml. Não posso construir uma estrutura JSON com 3 níveis, por exemplo. Mas eu suponho que a aplicabilidade de um xml com um monte de níveis seja meio reduzida no meio web... ou engano-me? hehe

Mas muito boa mesmo a dica. Valeu! biggrin.gif
0

#11 User is offline   hufersil 

  • Group: Moderadores
  • Posts: 1265
  • Joined: 15-January 04

Posted 16 March 2007 - 11:57 AM

Como JSON trabalha com notações de objetos, você pode criar quantos níveis forem necessários

CODE
// javascript

// criando a arvore
var objPai = {};
objPai.filho = {};
objPai.filho.neto = {};

// colocando os dados
objPai.nome = "Meu nome";
objPai.filho.nome = "nome do meu filho";
objPai.filho.neto.nome = "nome do meu neto";


Depois de codificar é só enviar para o PHP e boa

PHP
<?
// atribui-se o pai aqui, por isso o código abaixo vai depender de como vc enviar
$obj = $json->decode( $_POST['string_que_voce_enviar'] );

echo $obj->objPai->nome;
echo $obj->objPai->filho->nome;
echo $obj->objPai->filho->neto->nome;

?>

<?
// atribui-se o pai aqui, por isso o código abaixo vai depender de como vc enviar
$obj = $json->decode( $_POST['string_que_voce_enviar'] );

echo $obj->objPai->nome;
echo $obj->objPai->filho->nome;
echo $obj->objPai->filho->neto->nome;

?>


@braços e fique com Deus!
0

#12 User is offline   Thompson 

  • Group: Membros
  • Posts: 616
  • Joined: 17-February 04

Posted 19 March 2007 - 03:10 AM

Show!!!!!! Definitivamente, isso não passou pela minha cabeça.

Mais uma vez, obrigado! biggrin.gif
0

#13 User is offline   chackal_sjc 

  • Group: Membros
  • Posts: 260
  • Joined: 09-August 04

Posted 20 March 2007 - 04:49 AM

JSON é muito interessante... existem muitos artigos na net sobre JSON.. nem precisa de livro não..
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)