quinta-feira, 23 de setembro de 2010

Ajax sem segredo


Para compreender perfeitamente você deve atender aos requisitos abaixo.
Requisitos minimos: ter noções básicas de HTML.
Requisitos recomendado: ter noções básicas de HTML, saber o que é funções javascript e como chama-las.

Quem não entender pode postar suas dúvidas que estarei respondendo às aqui mesmo.

Vou mostrar um exemplo onde você seleciona um estado e o ajax busca as cidades do estado.

O que é ajax?
Grande parte das pessoas que iniciam a programação na web se perguntam que linguagem de programação é essa? Calma filho ajax não é uma nova linguagem de programação é apenas uma técnica de usar o java script para fazer páginas dinâmicas ou seja atualizar os dados na tela sem precisar carregar a página toda novamente então vamos lá para um exemplo simples como todos já sabem só se começa pelo começo.


Primeiramente vamos criar o nosso script que pode ser criado em um arquivo .js ou declarar no cabeçalho da sua página (entre as TAG's <head><script>...</script></head> vou explicar um pouco mais logo abaixo.
<script>
var ajax;
var requeste;

function RequisicaoAjax(tipo,url,status){
 // criamos o objeto
 if(window.XMLHttpRequest){
  ajax = new XMLHttpRequest();
 }else
 {
  if(window.ActiveXObject){
   ajax = new ActiveXObject("Msxml2.XMLHTTP");
   if(!ajax){
    ajax = new ActiveXObject("Microsoft.XMLHTTP");
   }
  }
 }
 // verificamos se o objeto foi criado
 if(ajax){
  inicia(tipo,url,status); // chama a função que inicia o objeto
 }else{
  alert("Não possui suporte a AJAX");
 }
}

// inicia o objeto e envia a requisição
function inicia(tipo,url,bool){
 ajax.onreadystatechange=trataResponse;
 ajax.open(tipo,url,bool);
 ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 
 ajax.send(requeste);
}
function enviaDados(url){
 criaQueryString();
 RequisicaoAjax("POST",url,true);
}

function criaQueryString(){
 requeste="";
 var frm = document.forms[0];
 var numElementos = frm.elements.length;
 for(var i=0;i < numElementos;i++){
  if(i< numElementos-1){
   requeste += frm.elements[i].name+"="+
   encodeURIComponent(frm.elements[i].value)+"&";
  }else{
    requeste += frm.elements[i].name+"="+
    encodeURIComponent(frm.elements[i].value);
  }
 }
}
function trataResponse(){
 if(ajax.readyState==4){
document.getElementById("aguarde").innerHTML="aguarde...";
  if(ajax.status ==200){
   document.getElementById("aguarde").innerHTML="";
   document.getElementById("result").innerHTML = ajax.responseText;
  }else{
   document.getElementById("aguarde").innerHTML="Erro na requisição"+ajax.responseText;
  }
 }
}

function CapturaDados(form)// Função que pega todos os dados do formulário
{
 var url = form.name; // pega o nome do formulário
//captura os dados dos select
 elementosForm = form.getElementsByTagName("select");
 for(i=0; i < elementosForm.length; i++){
  
  if(elementosForm[i].value != ""){
   url = url + elementosForm[i].name + "=" + elementosForm[i].value + "&";
  }
 }
// chama a requisição
RequisicaoAjax("GET",url,true);
}
</script>
Agora é só criar o formulário e pronto virão como é fácil
<form name="AulaAjax.php?" method="post" action="javascript:void%200" onsubmit="return false;">
Estado:
<select onchange="CapturaDados(this.form)" name="estado">
 <option value="">Selecione...</option>
    <option value="AC">ACRE</option>
    <option value="AL">ALAGOAS</option>
    <option value="BA">BAHÍA</option>
</select>
Cidade:
<select id="result">
</select>
<br />
<input type="submit" onclick="CapturaDados(this.form)" value="Enviar" />
</form>
Veja exemplo funcionando

Dowload do exemplo.

OBS: essa função não permite a requisição em páginas fora do seu domínio.

Em breve vou estar postando como utilizar JSON com PHP e AJAX.

Nenhum comentário:

Postar um comentário

Related Posts with Thumbnails