Página Inicial > PHP, Tutoriais > Enviando post com jQuery e PHP

Enviando post com jQuery e PHP

Salve Galera,

Há alguns dias atrás precisei para um projeto meu, implementar um post que além de enviar os dados para um script PHP sem sair da página não precisasse ser recarregada, inclusive queria agradecer o pessoal da comunidade pela ajuda, depois de dar uma pesquisada cheguei a conclusão que o jQuery iria suprir minha necessidade.

Como obtive sucesso, gostaria de compartilhar com o grupo o resultado, porém gostaria de avisar que esse post busca ser uma “luz no fim do túnel” para iniciantes, portanto se você já é experiente no assunto pode ficar a vontade para sugerir modificaçõs e melhorias.

Tenho como premissa que você já possui: Um servidor PHP instalado, se não possui, sugiro que leia meu post “Instalando Apache, MySQL e PHP5 no Ubuntu” ou se você é usuário Windows baixe e instale o Xampp, algum conhecimento em HTML, jQuery e PHP.

Como exemplo iremos criar uma página que informará ao usuário o preço com desconto de um determinado valor.

Vamos ao código!

Primeiramente você terá que baixar o jQuery e incluí-lo á sua página.

<script type="text/javascript" src="jquery-1.3.2.js"></script>

É preciso criar os campos que receberam os valores não esquecendo de  colocar seu  “ID” pois será preciso para manipulá-los, note que não estou usando a TAG <form></form>. pois quem irá controlar o envio do post é o jQuery.

<label>Valor R$</label>
<input name="valor" id="valor" type="text" /><br />
<label>Desconto %</label>
<input name="desc" id="desc" type="text" />
<br />
<div id="retorno"></div>
<br />
<input name="calc" id="calc" type="submit"/>

Agora usaremos o jQuery, dentro da TAG <head></head>você terá que criar um novo script.

<script type="text/javascript">
$(document).ready(function(){
    //Dispara o Submit ao clicar no input com id = #calc
    $('#calc').click(function(){
 
        //Pega o valor do campo Valor
        var valor = $('#valor').val();
 
        //Pega o valor do campo Desconto
        var desconto = $('#desc').val();
 
        //Pega o post e envia para o script CalculaDesconto.php em formato JSON
        $.post('CalculaJuros.php',{valor: valor,desconto: desconto}, function(data){
                //Imprime o retorno do script PHP
                $('#retorno').text(data);
        });
    });
});
</script>

Para finalizar usaremos o PHP para fazer os calculos e retornar o resultado.

<?php
 
//Método para extrair os dados do POST
extract($_POST);
 
//Crio uma função para calcular o preço final com desconto
function calcDesconto($valor,$desconto){
 
    //Descobre quanto é 1% do valor total
    $umPorcento = $valor / 100;
 
    //Descobre quanto vai ser o valor do desconto
    $totalDesc = $umPorcento * $desconto;
 
    //retorna o valor total com desconto
    $resultado = $valor - $totalDesc;
 
    return $resultado;
}
 
//imprime na tela o valor total com desconto
echo "Total com desconto R$ ".calcDesconto($valor,$desconto);
 
?>

Até uma próxima pessoal!

Categories: PHP, Tutoriais Tags: , , , , , ,
  1. 15, junho, 2009 em 22:46 | #1

    Cara, tô começando com jQuery agora também, e achei o post muito interessante. Depois pretendo postar um post resumindo um pouco o jQuery.

    Nota 10

  2. GabrielBarboza
    16, junho, 2009 em 09:21 | #2

    @klauss
    Grande Klauss, obrigado pelo post, tive que dar uma parada no jQuery porque tô tendo que me dedicar ao trabalho de conclusão mas assim que terminar voltarei aos estudos :) mas estamos na espera dos seus posts!

  3. Diego
    28, julho, 2009 em 12:58 | #3

    Estou tentado retornar com um alert. Como poderia fazer

  4. GabrielBarboza
    28, julho, 2009 em 22:32 | #4

    Fala Diego!

    Primeiramente obrigado pela visita ao post, note a linha 15 do script jQuery
    Ele seta ao #retorno um texto que recebe como parametro os dados do script php.
    Então é só colocar o parametro data no alert que ele retornará as respostas conforme deseja, mais dúvidas é só falar que estamos aí pra isso! abraços!

  5. Triplo X
    13, outubro, 2009 em 13:51 | #5

    Olá, muito obrigado pelo script.
    Mas como faço para checar se a resposta foi positiva e então apagar os dados de post?

    Obrigado.
    Att.

  6. GabrielBarboza
    13, outubro, 2009 em 14:08 | #6

    @Triplo X Opa! obrigado Triplo X, todo tratamento do post e a lógica vc faz no PHP normal a única coisa que vai mudar é como vc vai enviar a mensagem para o script PHP. Espero que tenha esclarecido! qualquer coisa estamos aê abraços!

  7. Diplo
    14, abril, 2010 em 18:28 | #7

    Excelente seu trabalho.
    Mas uma pergunta: Existe a possibilidade de usar dois $.post na mesma página e permitir que esta não seja recarregada?
    Por exemplo, vamos supor que há um input com auto sugestão preenchida por onkeyup mapeado por um $.post (x.php …).
    Suponha também um botão para processar o primeiro input que ao ser acionado chama outro $.post.
    Em ambos os casos apenas as divs criadas para tratar os resultados devem ser alteradas.
    Obrigado,
    Di
    .

  8. Gabriel
    23, abril, 2010 em 11:01 | #8

    Opa! Diplo, primeiramente obrigado pelo elogio e pela visita ao meu post, desculpa a demora para responder é que realmente ultimamente estou sem tempo! :D eu não entendi muito bem o propósito de usar mais de um $.post em uma mesma página! poderia explicar melhor? ou desenha pra mim que eu entendo! :D

  9. 22, junho, 2010 em 18:36 | #9

    Gabriel valeu mesmo! Não sabe quanto eu procurei por algo assim. É de desenvolvedores assim que a comunidade de Programadores precisa.
    Obrigado.

  10. Gabriel
    22, junho, 2010 em 23:39 | #10

    Stanley! primeiramente muito obrigado por visitar o meu post, fico muito grato pelo elogio, serve como incentivo, pois o intuito é sempre ajudar! e que bom que lhe foi útil, abraços!

  1. Nenhum trackback ainda.