Edição de Setembro

... revista mensal de programação Open Source

Uma edição repleta de artigos inovadores, redigidos por profissionais, com especial detaque em PHP e PHP-GTK !
  Artigos :
- Design Patterns
- Cross Site Request
- Optimização de código
- Web Services
- Manuel Lemos em entrevista
-
Parceiros :
- Yahoo
- DRI
- Adianti
- PHPClasses
A Revista PHP é distribuida por universidades, instituições e empresas
Solicite-nos informação para publicidade a preços reduzidos !


Artigo 41 / 58

Processar dados com Ajax e PHP


Tags :
php ajax, XMLHttpRequest, ActiveXObject, Microsoft.XMLHTTP


Neste artigo vou criar um pequeno exemplo com Ajax e PHP , que exemplifica de forma simples a integração e o funcionamento desta funcionalidade, tão comum em aplicações designadas Web 2.0.
O objectivo deste artigo é complementar a teoria do artigo que escrevi antes

"Compreenda como funciona o Ajax"

disponível aqui , o qual deverá ler com bastante atenção de forma a compreender o que foi aqui feito.
Muitos programadores optam por chamar a livraria Ajax , a partir dum ficheiro *.js. No meu caso como a livraria é muito reduzida optei por por incluí-la na página , onde o pedido é solicitado.
Basicamente o processo é muito simples a página "ajax.php" contém a interface e o processamento dos dados com Ajax. A pagina "resultado.php" , recebe o parâmetro enviado por url , com a função send do Ajax , via GET.
Poder-se ia fazer algo muito mais complexo , mas eu optei apenas por simplificar a tarefa de forma a que quem nunca usou Ajax compreenda com essa funcionalidade é implementada.


<html> 
<head> 
<title>Processar dados com Ajax e PHP</title> 
<meta http-equiv="Content-Type" 
content="text/html; charset=iso-8859-1"> 
<script language="JavaScript" type="text/javascript"> 
var pedido = null; 
function myAjax(pagina) 

try { 

 //cobre versão Firefox, Opera , Safari 
  pedido = new XMLHttpRequest(); 
  pedido.onreadystatechange = pedidoStatus; 
  pedido.open("GET",pagina,true); 
  pedido.send(null); 
   
} catch (tentaIEversaoNova) { 
  try { 
   // versões novas do IE 
    pedido = new ActiveXObject("Msxml2.XMLHTTP"); 
    pedido.onreadystatechange = pedidoStatus; 
    pedido.open("GET",pagina,true); 
    pedido.send(); 
     
  } catch (tentaIEversaoAntiga) { 
    try { 
    // versões antigas do IE 
      pedido = new ActiveXObject("Microsoft.XMLHTTP"); 
      pedido.onreadystatechange = pedidoStatus; 
      pedido.open("GET",pagina,true); 
      pedido.send(); 
      }catch (falha) { 
      pedido = null; 
      
    } 
  } 
}  
  if (pedido == null) 
  alert("Não foi possível criar o objecto !");  


function pedidoStatus() 

  // completou o pedido ... 
if (pedido.readyState == 4) 

 // e o correu tudo bem no servidor 
if (pedido.status ==200) 


// o servidor responde em formado de texto
// plano no div  conm id 'resultado' 
document.getElementById('resultado')
.innerHTML = pedido.responseText; 

else 

// em caso de erro mostra mensagem 
document.getElementById('resultado').innerHTML =  
"<font color='red'><strong>Erro ao processar o pedido<strong></font>"; 



</script>

Ficheiro "ajax.php"


<script language="JavaScript" type="text/javascript">
var pagina;

function Pesquisa(str){
 pagina = "resultado.php?tag="+str;
 myAjax(pagina);
}
</script>


</head>

<body>


<form action="<?php $_SERVER['PHP_SELF'];?>" method="post" >
<label for="termo"><strong>Termo para pesquisa :</strong></label>
<input type="text" size="40" onKeyUp="Pesquisa(this.value)">
<br>
</form>
<!-- o RESULTADO SERá MOSTRADO NA DIV SEGUINTE-->
<div id="resultado"></div>
</body>
</html>


Ficheiro "resultado.php"

<?php
// se o parametro 'tag' existe é impreimido
if(isset($_GET['tag'])){
echo 
htmlentities("A tag é ".$_GET['tag']);
 }
?>

Espero ter ajudado ;)
Abraço
José Franco

Comentários
Nome
Email
Comentário

+=
Existem 2 comentários para este artigo

Enviado por: José Franco
Comentário
Explica melhor o que você pretende
em 01-06-2009 às 07:38:45

Enviado por: fabio
Comentário
muito obrigado pela ajuda comecei a entender o ajax por ele.deus lhe abençoe. voce teria algum artigo para carregar um list box?
em 10-03-2009 às 13:18:45



Links patrocinados

Sponsors

Revista PHP Edição online
 Estão online 2 utilizadores !
38.107.191.117

Artigos publicados online

  • em breve
  • Publicidade
  • eXTReMe Tracker

Promove-te

A Revista PHP, está a receber propostas para edição em edições seguintes. Os teus artigos serão revistos por uma equipa profissional, e publicados de acordo com o grau de profissionalismo. A revista tem um ISSN associado, o que significa que os artigos aquí publicados serão de interesse ciêntifico, podendo ser utilizados em trabalhos de pesquisa tecnologica desde que citada a fonte !