Quantcast

Programação WEB é à Quinta-feira!

43 Comentários

Pedido AJAX em PHP com auxílio de JQuery

por Pedro Gomes

Como vimos nos dois últimos artigos, o Javascript vem trazer às nossas aplicações WEB a interacção e flexibilidade que uma linguagem server-side como o PHP não consegue oferecer. Nesse sentido, decidimos mudar o nome da rubrica “PHP é a quinta-feira” para “Programação WEB é à Quinta-feira! “. Esta semana continuamos a explorar esta linguagem que se tem assumido como a principal linguagem WEB, para além de aumentar um pouco o grau de complexidade da nossa programação vamos também perceber como fazer a integração do JS com o PHP.

web_01

Já devem ter reparado que em inúmeros websites onde é possível actualizar a informação de determinado componente da página sem ser necessário refrescar a página ou até ser direccionado para outro endereço. Isto é possível graças a um termo conhecido AJAX (Acrónimo de Asynchronous JavaScript and XML). AJAX representa a utilização de um conjunto de tecnologias conhecidas (como XML ou HTML, entre outros) com o objectivo de criar aplicações Web mais interactivas graças a uma troca assíncrona de informação que não interfere com o comportamento da página (mais informações, em https://developer.mozilla.org/en/AJAX).

Vamos então aprender como utilizar este método na criação de uma página web em PHP e com o auxilio do jQuery. A ideia deste tutorial é criar uma calculadora que permite somar 2 números introduzidos pelo utilizador. Cria-se, então, um formulário PHP muito simples onde existam dois campos de texto e um botão para efectuar o pedido:

<form id="soma_algarismos" action="calculo.php" method="post" >
<label for="primeiro_algarismo">1º Número:</label></p>
<input id="primeiro_algarismo" name="primeiro_algarismo"/>
<label for="segundo_algarismo">2º Número:</label></p>
<input id="segundo_algarismo" name="segundo_algarismo" /><br>
<input type="submit" value="Somar" id="soma"/>
</form>

Num pedido normal (neste caso, sem utilizar AJAX), seriamos redireccionados para a página definida no action do formulário (neste caso, calculo.php), onde seria mostrado o resultado da soma dos dois números. Contudo, vamos efectuar um pedido AJAX, onde se irá obter a informação desejada sem sair da página principal. E é neste momento que entra o jQuery e, mais concretamente, a função jQuery.ajax(). Existem vários parâmetros a definir nesta função, entre os quais destaco os seguintes:

  • type: parâmetro que define o tipo de pedido http pretendido (“POST” ou “GET”).
  • url: indica o endereço da página à qual se pretende efectuar o pedido.
  • data: representa os dados que se pretende enviar.
  • dataType: indica o formato dos dados recebidos no pedido.
  • success: parâmetro que define o comportamento quando o pedido é efectuado com sucesso. Aqui define-se o que fazer com os dados obtidos.

Vamos então observar como se consegue efectuar este tipo de pedidos através da utilização da referida função. Para compreensão do processo, atente-se nos comentários presentes no código.

<script type="text/javascript">

// O processo é desencadeado quando se clica no elemento #soma

$("#soma").click(function(){

// São recolhidos os valores dos dois algarismos introduzidos pelo utilizador

var primeiro_algarismo = $("input#primeiro_algarismo").val();

var segundo_algarismo = $("input#segundo_algarismo").val();

// Os valores são concatenados na variável ‘data’

var data = "primeiro_algarismo="+primeiro_algarismo+"&segundo_algarismo="+segundo_algarismo;

// É efectuado o pedido, definindo-se os parâmetros explicitados acima.

$.ajax({

type: "POST",

url: "calculo.php",

data: data,

dataType: 'html',

success: function(response) {

// O resultado da soma (response) é mostrado no element #resultado.

$('#resultado').html(response);

}

});

return false;

});

</script>

E após isto conseguimos obter o seguinte resultado:clip_image003

É assim desta forma muito simples, que ficou exemplificado como utilizar este método de efectuar pedidos. As suas potencialidades são imensas bastando para isso explanar a vossa criatividade. Espero que este tutorial tenha sido bastante útil.

Download: pplware_tutorial_ajax (Código fonte – actualizado)

Partilhar:
Tags:

Comentários

43
  1. PG
    Pedro Gomes

    Qualquer dúvida adicional ou sugestão ou até para confraternizar, estão completamente à vontade!

    1. PP

      Excelente artigo Pedro. Parabéns!
      (É engraçados como somos 3 Pedro actualmente a contribuir para esta Rubrica:
      – Pedro Pinto
      – Pedro Peixoto
      – Pedro Gomes)

      1. PG
        Pedro Gomes

        Parece estar detectado um padrão 😉

        1. QU

          Espectacular 🙂

          1. CO
            Corvo

            o meu prof de programação no curso em k estive a uns anos tb se chamava pedro e era um autentico fenomeno =D estou a ver k programação é com os pedro’s =) ehehe

          2. TE
            TelmoN

            Por acaso o meu prof de Programação também se chama Pedro… Algo se passa aqui LOOOL

          3. CA
            Carlos

            o meu prof de 3 disciplinas de prog tambem é pedro..XD

          4. PS
            Pedro Sousa

            Não é para me gabar mas.. Chamo-me Pedro estou no ISEP em Eng. Electrotécnica e de Computadores e o que mais gosto é disciplinas relacionadas com programação.. O meu último teste da disciplina de programação que estou agora a ter foi o 3º melhor do pessoal do meu curso no ISEP xD

        2. PG
          Pedro Gaspar

          Os Pedros são todos bons programadores xD

        3. HE
          Helguera

          Portanto não será um padrão, mas sim um “Pedrão” xD looo0l

    2. PP
      Pedro Peixoto

      Parabéns Pedro! O artigo está bastante bom. Bem-vindo à equipa dos Pedros programadores 🙂

  2. WY

    Só faltou colocar o ficheiro “calculo.php” no corpo do artigo, de resto bom trabalho.

  3. BM
    BMJ

    Ena isto é tal igual uma cadeira que eu já fiz na universidade….

  4. PA
    Pedro A.

    E para que serve o ficheiro (inexistente) back_end.php do zip?

    1. PA
      Pedro A.

      E podias ter explicado melhor. Não referes por exemplo o que se faz no ficheiro calculo.php. Só após fazermos o download é que vemos o que é feito lá.
      Da forma como as coisas são apresentadas este exemplo nunca irá funcionar.

      PS: eu sou básico nisto do PHP e o jQuery.

      1. PP
  5. TE
    TelmoN

    Só uma dúvida: caso eu queira experimentar estes tutoriais, por qual deles devo começar? pelos vistos já existem 5/6páginas desde 2007 acerca de programação WEB. Deverei dar uma vista de olhos ou dedicar-me desde os primeiros tuts elaborados?

    1. PP

      Começa pelo PHP, podes começar aqui
      http://pplware.sapo.pt/category/tutoriais/php/page/5/

      1. TE
        TelmoN

        E isso não está desactualizado?

  6. RI
    Ricardo

    Faltou uns antes do label

  7. RI
  8. RI
    Ricardo

    nao ta aparecendo,

    mas esta fechando o P, mas nao esta abrindo

  9. RI
    Ricardo

    A TAG P só esta fechando, mas nao abre…. se eu escrevo a TAG aqui ela nao aparece

  10. PG
    Pedro Gomes

    Boa Noite,

    de facto existia uma incorrecção no código-fonte que já enviei para ser corrigido!

    Cumprimentos

  11. PG
    Pedro Gomes

    Já está corrigido!

  12. RI
  13. RI
    Ricardo

    continua faltando a abertura da tag P

    o correto é(sem aspas)

    1. PG
      Pedro Gomes

      De facto, a tag está a mais! Contudo, para efeitos do tutorial não interfere nem impede que tudo funcione.

  14. RI
    Ricardo

    as tags html nao estao habilitadas, por isso nao consigo lhe ajudar a corrigir o código.

  15. AF

    Excelente artigo, fazia-me falta quando tive Computação na Internet mas sempre dá para reavivar a memória!! Parabéns!

  16. LO
    Lopes

    Muito bom artigo, venha o próximo, parabéns.

  17. GI
    Gildo

    Há outra maneira bem mais simples, para quem quiser enviar formulário considerados enormes:

    $.post(‘calculo.php’, $(‘#soma_algarismos’).serialize(), function(resposta)
    {
    //codigo a executar….
    });

    1. GI
      Gildo

      Mas o artigo está muito bom 🙂

    2. PG
      Pedro Gomes

      Exactamente…é mesmo isso que costumo utilizar! Mas para efeitos de tutorial pareceu-me mais adequado!

      1. GI
        Gildo

        Sim, também concordo

    3. PS
      Pedro Sousa

      Costumo fazer também assim..

  18. SA
    Samu

    Com o evento ‘onkeyup’ nos campos dos formulário isso fica mais ‘engraçado’ dando uma noção de perfeito0 ‘real-time’, mostrando assim o resultado mal se escreve o número sem ser preciso clicar no botão somar!

    Cumprimentos!

    1. PG
      Pedro Gomes

      Sem dúvida! Reforço apenas a ideia de que se trata apenas de uma opção que achei ser mais simples para todos perceberem! Por exemplo, por norma eu até nem utilizo a função de jQuery.ajax…defino o pedido em javascript puro!

  19. SA
    Samu

    Também costumo fazer dessa maneira…

  20. DR
    DreamWave

    Há mais para além do jquery ….
    Melhor dizendo há mais muito antes do jquery

  21. SA
    santiago

    o meu localhost nao abre!!!!
    aparece link broken

    1. SA
      Sandro

      Venho acompanhado a programação dos post, e considero excelente, gostaria de saber se o mesmo continuará ou este foi o ultimo, pois já se passaram algumas quintas e sempre fico na espectativa de novo post.

      Espero que continue o belo trabalho

Deixe um comentário