Passar valores por GET ou POST mediante AJAX - Explicando o código
Bem, aqui passaremos a explicar o código da função para que se possa entendê-lo melhor.Por Pablo Lecce
Publicado em: 14/2/08
O código tem duas funções.
A primeira é a função que carrega o objeto AJAX propriamente dito. É complexa e sua explicação não é objeto deste tutorial, sendo assim, você pode usar qualquer função para o carregamento do objeto xhttprequest que vier usando previamente.
A função recebeid é a que se encarrega de passar valores entre páginas mediante AJAX, já sejam estes mediante GET ou mediante POST.
Para isso, usa 4 variáveis:
- _pagina por onde lhe passo a url da página que desejo carregar
- valorget por onde lhe passo as variáveis get que desejo passar
- valorpost por onde lhe passo as variáveis post que desejo passar
- camada onde indico o DIV ou a camada onde se carregará a página que se solicite mediante a função.
DESMEMBRANDO A FUNÇÃO
Envio por GET ou por POST?
Primeiramente, mediante o seguinte código
if(valorpost!=""){
ajax.open("POST", _pagina+"?"+valorget+"&tempo="+new Date().getTime(),true);
} else {
ajax.open("GET", _pagina+"?"+valorget+"&tempo="+new Date().getTime(),true);
}
A função determina o método que usará o objeto AJAX para enviar as variáveis à página. Como você sabe, se se envia por método POST isto se faz de forma diferente a quando se envia mediante GET.
Adicionalmente, sucede que se você enviar mediante GET e houver variáveis POST, as mesmas não serão passadas. Por isso, a utilidade deste condicional é saber se há variáveis POST que devem ser passadas, configurar o método a POST e senão deixá-lo em GET.
A seguinte parte do código basicamente verifica os estados. Enquanto a página está sendo chamada carrega uma imagem de carregando, embora se possa substituí-la por uma frase se desejar.
E uma vez que recebe os resultados, os carrega na camada.
Finalmente, a outra parte importante da funcion
Mediante o seguinte condicional, se complementa o primeiro condicional, enviando os daos da solicitude mediante POST ou GET segunda corresponda, com código adequado para ajax.send.
if(valorpost!=""){
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send(valorpost);
} else {
ajax.send(null);
}
Comentários do artigo