0 Compartilhamentos 445 Views

Do MySQL para o jQuery usando PHP, XML e AJAX

30 de agosto de 2012

Este tutorial assume que você sabe como se conectar ao seu banco de dados. Ele também presume que você tenha uma configuração de tabela chamada "pessoas" com 3 colunas: "título", "nome" e "email".

Insira alguns dados para esta tabela.

Estrutura do XML

A idéia deste tutorial é ler um arquivo XML com uma chamada de AJAX do jQuery, portanto é necessário estruturar nossos dados corretamente. Aqui está um exemplo da estrutura do que nosso documento XML irá gerar:

Arquivo <i>"pessoas.xml"</i>:

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

<pessoas>

<pessoa>

<nome titulo="Sr">Joao</nome>
<email>[email protected]</email>

</pessoa>

<pessoa>

<nome titulo="Sra">Maria</nome>
<email>[email protected]</email>

</pessoa>

</pessoas>

O código PHP para criar o arquivo XML

Primeiro, iremos obter os dados do banco de dados e então por meio de cada resultado de linha para gerar o XML. Faremos isso utilizando a função PHP DOMDocument() que cria um documento XML para "nós" e também permite adicionar "nós" e as "child" para o XML dinamicamente.

Arquivo <i>"criararquivoxml.php"</i>:

<?php

$query = "SELECT titulo,nome,email FROM pessoas";
$result = mysql_query($query);

$xml = "";

while($array = mysql_fetch_array($result)) {

$title = $array[[‘titulo’]];
$firstname = $array[[‘nome’]];
$surname = $array[[‘email’]];

$xml .= "tt<pessoa>n";
$xml .= "ttt<nome titulo="$titulo">$nome</nome>n";
$xml .= "ttt<email>$email</email>n";
$xml .= "tt</pessoa>n";

}

header(‘Content-Type: application/xml; charset=ISO-8859-1’);
echo "<?xml version="1.0" encoding="UTF-8" standalone="yes"?>n";
echo "t<pessoas>n";
echo $xml;
echo "t</pessoas>n";
?>

Em seguida precisamos salvar o arquivo XML. A forma como fazemos isso é dizer o arquivo PHP para salvar o documento XML com a função de saveXML(), obtem o script PHP para responder com um cabeçalho de tipo XML. Assim, após o código acima, adicione isso:

$xml_string = $doc->saveXML();
header(‘Content-Type: application/xml; charset=ISO-8859-1’);
echo $xml_string;

A parte do cabeçalho informa ao navegador que este é um tipo de conteúdo XML, e o resto é simplesmente a estrutura de dados XML, como mencionado anteriormente. Espero que agora, quando você executar esse script PHP, você deve retornar um documento XML válido.

Ajax com jQuery

A última peça para este quebra-cabeça é conseguir ler os dados XML em uma página HTML usando jQuery e ajax. Você precisa incluir, obviamente, a biblioteca jQuery, eu também estou incluindo um arquivo javascript externo para o nosso código de jQuery. Assim, vá em frente e crie um arquivo de javascript chamado scripts.js e colocar o código abaixo para ele:

$(document).ready(function() {
$("#getData").click(function(){
var data = "";
$.get("pessoas.xml", function(theXML){
$(‘pessoa’,theXML).each(function(i){
var titulo = $(this).find("nome").attr("titulo");
var nome = $(this).find("nome").text();
var email = $(this).find("email").text();
data = data + "Nome: " + titulo + " " + nome + " – E-mail: " + email + "<br>";
});
$("#container").html(data);
});
});
});

 

Este código fará a chamada do evento de clique do botão e, em seguida, trás os dados via GET AJAX para o script PHP que fizemos anteriormente. Uma vez que receber os dados do arquivo XML, este interage em cada nó de “pessoa”. Observe que estou retornando duas diferentes fontes de dados de XML, os dados entre as marcas “nome” assim como também retornando os dados para um atributo de nó XML, o “título”.

Carregando...

Você pode se interessar

Como desativar temporariamente sua conta do Facebook
Dicas
18 visualizações
Dicas
18 visualizações

Como desativar temporariamente sua conta do Facebook

Carlos L. A. da Silva - 19 de setembro de 2020

Preparado para um "detox" da rede social? O Facebook permite que você suspenda sua conta sem precisar apagá-la permanentemente.

Promoções de Jogos do Final de Semana (18/09)
Notícias
12 visualizações
Notícias
12 visualizações

Promoções de Jogos do Final de Semana (18/09)

Carlos L. A. da Silva - 18 de setembro de 2020

Confira as melhores ofertas de jogos de PC para o final de semana.

O que você precisa saber sobre o Pix
Artigos
21 visualizações
Artigos
21 visualizações

O que você precisa saber sobre o Pix

Carlos L. A. da Silva - 16 de setembro de 2020

Será o fim de DOCs, TEDs e transferências? Novo modelo de pagamento eletrônico proposto pelo Banco Central está prestes a entrar em funcionamento.

Deixe um Comentário

Your email address will not be published.

Mais publicações

Como centralizar no CSS de forma definitiva
Dicas
21 visualizações
21 visualizações

Como centralizar no CSS de forma definitiva

Carlos L. A. da Silva - 12 de setembro de 2020
Promoções de Jogos do Final de Semana (11/09)
Notícias
25 visualizações
25 visualizações

Promoções de Jogos do Final de Semana (11/09)

Carlos L. A. da Silva - 11 de setembro de 2020
Esse artigo foi escrito por um robô
Artigos
22 visualizações
22 visualizações

Esse artigo foi escrito por um robô

Carlos L. A. da Silva - 9 de setembro de 2020
Home Booth? Você quase trabalhou em um desses…
Artigos
33 visualizações
33 visualizações

Home Booth? Você quase trabalhou em um desses…

Carlos L. A. da Silva - 5 de setembro de 2020