(Parte 4) Requisição AJAX utilizando a função $.post() com PHP

Requisição AJAX utilizando a função $.post() com PHPDando prosseguimento na série de artigos sobre requisições AJAX com o auxílio da biblioteca jQuery, hoje vou escrever sobre a função $.post().
 
Essa função tem seu funcionamento semelhante a função $.get() que foi apresentada na parte 3, inclusive suas opções de configurações. Porém a função $.post() trabalha somente com o método HTTP POST, diferente da função $.get() que utiliza o método HTTP GET.
 
Alguns posts sobre jQuery que podem interessar:
 
Com certeza agora surge a pergunta:
 
Qual a diferença entre os métodos GET e POST? 
GET: A requisição é enviada via URL, ou seja, todos os dados que estão sendo enviados ficam visíveis na URL do navegador. Por esse motivo possui uma limitação que gira em torno de 255 caracteres, além de só aceitar textos. É o método padrão de submissão dos formulários HTML quando não informamos nenhum valor na propriedade method.
 
POST: Os dados da requisição são encapsulados junto ao corpo da requisição HTTP, ou seja, os dados não podem ser visualizados. Por esse motivo praticamente não existe limite no comprimento da requisição. Em termos de performance, tende a ser mais lento que o método GET, devido ao tempo para encapsular a mensagem HTML. Sem restrições para tipos de dados, aceita transportar textos e binários.
Sintaxe básica: $.post(url[,data][,success(data, textStatus, jqXHR)][, dataType])
 
url:  Essa chave recebe uma string com a URL para onde será enviada a requisição, essa chave é obrigatória.
Exemplo:

 
data: Essa chave recebe os valores que serão enviados para o servidor junto com a requisição, chave opcional. 
Exemplo:

 
success: Seu valor é uma função que será executada quando a requisição for completada com sucesso. Essa função aceita 3 argumentos, sendo o primeiro os dados retornados pela requisição, segundo uma string contendo o status e terceiro um objeto XMLHttpRequest, função opcional.
Exemplo:

 
dataType: Essa chave recebe uma string informando o tipo de dado esperado como retorno pelo servidor, opções aceitas: textxml, html, json e script, chave opcional.
Exemplo:

 

Consulta com $.post() e PHP

Como seu funcionamento é praticamente idêntico a função $.get(), com exceção do nome da função que agora é $.post() (index.php) e a função de captura dos dados no PHP agora será utilizado $_POST[](controllerImagem.php). Vamos utilizar a mesma estrutura de scripts PHP do artigo anterior, vou postar abaixo os scripts de conexão com o banco de dados, classe image.class.php e controllerImagem.php. Observem que vou adicionando novas funcionalidades a classe image.class.php a medida que os novos artigos estão sendo postados.

conexao.php

imagem.class.php

 
Observem que no script controllerImagem.php houve uma alteração, agora o valor esperado para variável $acao é “preencher_titulo”, essa string será enviada pela requisição através da propriedade data e o método que será chamado é o getHTMLTitulos().
controllerImagem.php

Abaixo segue o script da código HTML da página index.php que será exibida no navegador, observem que a requisição $.post() será disparada no evento Change do SELECT que contém os países. A função $.post() está recebendo as 4 opções:
url -> “controller/controllerImagem.php”
data -> { acao: ‘preencher_titulo’, pais: valorPais }
success -> function(data){}
dataType -> “html”

index.php

 

Agora vamos estilizar a página com CSS:

estilo.css

Finalizado a codificação, vamos testar a requisição!

Página inicial sem ativar o filtro:

 

Selecionando um país será carregado o SELECT “Títulos Filtrados“:

 
Ao Selecionar um país que não tem imagens, o SELECT “Títulos Filtrados” é carregado com o valor “Sem imagens cadastradas”:

 
 
Bom pessoal, demonstrei nesse artigo como efetuar requisições com a função $post() que trabalha exclusivamente com o método HTTP POST, essa função é menos complexa que a função $.ajax() e por esse motivo se torna de fácil utilização. Vale a pena salientar que as funções $.get(), $.post(), $.getJSON e $.getScript() possuem um efeito colateral em seu uso, se o arquivo requisitado não estiver disponível a requisição possivelmente não será encerrada, já na função $.ajax() existe uma verificação de erros o que impede esse tipo de problema

O uso da função $.post() também é indicado quando não precisamos customizar tratamentos de erros, imagens para demonstrar o processamento e etc., além da mesma aceitar tipos de dados variados e não ter limite de comprimento.

 
Até a próxima pessoal …
Show Buttons
Hide Buttons