Include em JavaScript

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.

Comentários (1) »

Cidades Solares | Sejam Bem-Vindos!

Novo projeto com Gabiru, Ciades Solares.

Screenshot Cidades SolaresEstou acabando, mas este, é mais um conteúdo/enquente/mailing =/. Não foi desta vez que pude praticar algo realmente inovador, aproveitei para utilizar alguns javascripts legais, mas não digo que foi o projeto do ano.

Gabiru agora está validando tudo e digo que este site é sim um W3 certified! =) Com todas as regrinhas, merece o selo!

A grande novidade do projeto fica por conta da enquete, que foi uma criação maluca mas achei até bastante interessante, todo voto tem a opção de manifestar sua opnião, para isso basta preencher os campos Nome e Email, assim criaremos uma lista de usuários realmente participativos do site, mantendo um mailing group realmente útil.

Gostei do layout, aliás, gosto de quase todos.

Deixe um comentário »

é, então um blog

Oi blog, tudo bem? Espero que sim.

Por aqui as coisas vão bem obrigado, os mesmos problemas de sempre.

Os projetos tem caminhado bem (graças a Deus) e estou terminando o cidades, em poucos dias o link está no ar. A menina dos meus olhos serradventure vai de vento em popa e logo logo teremos novidade dela no ar.
Hoje fiquei feliz, consegui entregar os 20 boletos daquele maldito para homologação, espero nunca mais ter que trabalhar com boletos de Contribuição Sindical.
Nosso novo amigo Sr. PHP Oo realmente tem a manha, e isso me deixa contente, corro um sério risco de acabar aprendendo isso também.

Para variar um pouco jogamos Quake3 na fase do espaço, e o psyco ganhou 2 ‘¬¬ (isso me irritou profundamente), e agora poderá continuar afirmando que perde quando joga na net pq o jogo da lag ou meu jogo tem cheat. Jogamos a noite também, mas dessa vez jogamos pouco pq eu tinha “problemas” aqui em casa. Espero jogar mais nos próximos dias, estou ficando bom nisso.

Neste momento estou estuando física com a Gôa e decobri que a lei dos gases é minha amiga e serve para todas as respostas!

Meu dedo melhorou, mas acho que amanhã vou de chinelo se amanhecer doendo, além do mais, é sexta feira! O fim de semana está por chegar e isso me contenta.

Ao mais, espero que este seja o primeiro de muitos posts.

Comentários (4) »