Pois bem, boa noite!
Como todos já deviam conhecer, e já está no PHPBRASIL a tempos esta que segue abaixo, é minha simples e singela função que faz a inclusão de um arquivo via javascript e sem dar o reload na página.
a coisa é simples, primeiro vem a função que meu querido amigo Elias fez e eu capturei dele. A idéia dela é iniciar o tal do Ajax no brownser do Cliente.
function openAjax() {
var ajax;
try{
ajax = new XMLHttpRequest();
}catch(ee){
try{
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}catch(E){
alert('Seu navegador não possui suporte a XMLHttpRequest');
ajax = false;
}
}
}
return ajax;
}
Agora que o ajax já está iniciado vamos levar e buscar dados!
;
function include(id,pag,destino){
url = 'ajax/'+pag+'.php?id='+id;
var ajax = openAjax(); // Inicia o Ajax
ajax.open("GET", url, true);
ajax.send(null);
ajax.onreadystatechange = function() {
if (ajax.readyState == 4) {
if (ajax.status == 200) {
document.getElementById(destino).innerHTML = ajax.responseText;
}else{
alert("Erro: " + ajax.statusText);
}
}else{
document.getElementById(destino).innerHTML = 'Carregando...'
}
}
}
Então vamos entender a grande bagunça, id é uma variável qualquer que opcionalmente você pode enviar à pagina a ser incluída, ex:
Quero listar em uma div todas as subcategorias de uma dada categoria, então envio o ID da categoria e na página a ser incluída faço a buscar utilizando este ID.
Pag é o arquivo que deve ser incluído e destino é o elemento html onde o resultado da inclusão aparecerá, seja ele uma td ou um div.
Atualmente utilizo esta função para o envio de um pequeno volume de dados então utilizo o Method Get e de forma Assíncrona, ou seja o navegador do cliente não fica parado esperando que a requisiçao seja Completa. Caso deseje utilizar um nível mínimo, porém maior de segurança e/ou enviar mais dados utilize o post, que simplesmente deverá ser enviado dentro da linha ajax.send(xxx);
Onde xxx é uma variável semelhante a linha de parametros enviada por GET ex.: (nome=Luis&email=luis@email&ajax_e_bacana=sim).
Como podem observar, a página incluida (pag) recebe a variável id por GET e lá você faz o que desejar com ela, lembre-se que tudo que seria visualizável na tela, acessando diretamente a página a ser incluída será exibido no (destino) ou seja, comentários e códigos PHP ficam de fora (exceto os códigos que são impressos na tela echo print).
Como forma de economizar funções e organizar meus códigos, quando desejo enviar mais de uma variável, concateno todas separando por | (pipe) e fica mais ou menos assim edt|1|2|5 e na página a ser incluída dou um expload(”|”,$id), separando denovo os valores em variáveis, confuso não
? Se quiser aprender esta técnica milenar entre em contato comigo.
Esta função, da forma como está, é universal e funciona para qualquer linguagem (isso não quer dizer que vá funcionar na sua área de trabalho!), basta coloca-la dentro de um servidor e rodar.
Então é isso, é bem simples e se quiser pegar um exemplo pronto, aqui está o link caso queira conhecer a utilização acesse qualquer um dos meus sites, todos utilizam. (Recomendo baixar o arquivo do PHPBRASIL, pq fica bem mais fácil de entender)
Puxa vida, é meu primeiro artigo aqui, tá bem confuso, mas tenho boa vontade de ajudar a quem precisar. Espero ainda poder um dia fazer um site inteiro sem um reload, usando apenas isto.
