Enviado dados para o PHP através de formulário

Bom galera, eu estive um tempo parado sem postar nada aqui no blog, mas prometo que vou tentar voltar a ativa. Mas vamos deixar de conversa e vamos ao que interessa mesmo.

Os iniciantes em PHP sempre tem a dúvida de como fazer o envio de umas informações de uma página para outra. Como vimos na postagem anterior as diferenças do GET e POST, agora vamos mostrar na prática como funciona o código.

A princípio, devemos saber que basicamente o envio dos dados de um formulário, geralmente, são enviados pelo método POST devido a sua capacidade de enviar grandes dados e segurança.

Só para recapitular um pouco sobre formulário em HTML, temos os seguintes tipos de campos de dados:

  • Hidden
  • Text e Textarea
  • Radio
  • Checkbox
  • Select

Montando o formulário HTML

Todo formulário começa com a tag <form> e para uo funcionamento com o PHP, precisamo definir alguns parâmetros como “action” e “method” e seus devidos valores de acordo com a sua necessidade.

Os campos do formulários precisam ter o parâmetro “name” com um valor definido, pois será o PHP que irá capturar através deste name o valor passado no formulário.

Uma outra necessidade é colocar um botão de “submit” que é responsável pelo gatilho de envio dos dados que foram preenchidos no formulário e jogando para a página que irá recebê-los.

Vamos começar com um exemplo simples de formulário com apenas 2 campos, nome e idade. Vamos chamar esse arquivo de “formulário.php”. Vejamos o código abaixo:

<form id="formulario" name="formulario" method="post" action="recebe_dados.php">
Nome: <input type="text" name="campo_nome" id="campo_nome" /><br />
Idade: <input type="text" name="campo_idade" id="campo_diade" /><br />
<input type="submit" name="button" id="button" value="Enviar" />
</form>

Perceba que eu defini o action para o arquivo “recebe_dados.php” e utilizando o método POST. Os nomes dos campos nome e idade estão definidos como “campo_nome” e “campo_idade” respectivamente.

Recebendo os dados na outra página

Para a captura de dados enviados para o PHP, nós utilizamos as seguintes variáveis: $_POST e $_GET; de acordo com o método definido no formulário. Como no nosso exemplo acima eu utilizei o método POST, vou mostrar agora como iremos capturar esses dados no arquivo “recebe_dados.php”:

<?php
echo "O nome enviado foi: ".$_POST['campo_nome']."<br />";
echo "A idade enviada foi: ".$_POST['campo_idade']."<br />";
?>

Perceba que dentro do $_POST eu defini em cada campo o nome do campo utilizado no formulário com o parâmetro “name”. Então não importa o valor do “name” que você definir lá no formulário, pois basta você definir o mesmo nome na hora de capturar pelo PHP no $_POST. Ou seja, se no campo eu definir o valor do “name” para “banana” no PHP eu tenho que utilizar $_POST[‘banana’]. Deu pra entender a jogada?

É muito simples mesmo esse envio de dados!

Agora veja abaixo como seria em cada tipo de dados no formulário e como capturar no PHP.

Campo Hidden

Neste tipo de campo, precisamo definir um “value”, que será o valor enviado através do camop de forma já definida.

HTML:

<input type="hidden" name="macaco" value="banana" />

PHP:

<?php
echo $_POST['macaco']; // Receberá o valor "banana"
?>

Campo Text e Textarea

HTML:

<input type="text" name="email" />
<textarea name="mensagem" id="textarea" cols="45" rows="5"></textarea>

PHP:

<?php
echo $_POST['email'];
echo $_POST['mensagem'];
?>

Campo Checkbox

HTML:

<input type="checkbox" name="valor" value="10" />

PHP:

<?php
echo $_POST['valor'];
?>

Campo Select

Mais uma diferença no tipo SELECT, pois nele definimos normalmente o “name” e os “values” são definidos em cada “<option>”.

HTML:

<select name="sexo" id="select">
<option value="m">Masculino</option>
<option value="f">Feminino</option>
</select>

PHP:

<?php
echo $_POST['sexo'];
?>

E chagemos ao fim do entendimento de como passar os dados de um formulário para uma página PHP receber os dados e você fazer o que quiser com eles, por exemplo, manipular os dados e cadastrar no banco de dados.

Espero que tenham entendido e que façam um bom proveito do material.

Grande abraço e fico no aguardo de dúvidas!

10 Responses to “Enviado dados para o PHP através de formulário”

  1. omor disse:

    Não consigo pegar dados de um checkbox enviado de outra página.
    Seguinte, tenho uma página de produtos, nessa página, tenho um três checkbox que é o preço referente a variação do tamanho do produto e um botão comprar. Quando o usuário selecionar as opções, que pode ser as 3, 2 ou 1 envia para o carrinho de compras dizendo se e, pequena, média ou grande com os respectiva preços .

  2. Raimundo Marvin disse:

    Muito bem explicado parabéns .!

  3. joao lopes disse:

    Não funciona…nunca consegui fazer isto;(

  4. Diego disse:

    É o seguinte, estou fazendo um sistema php de chamado, criei uma tela que mostra todos chamados aberto, dai então quando clico na chamado eu vou para outra tela e nela tenho melhor visualização do mesmo e detalhes tenho um botão RESPONDER ai que esta… quando eu clico nele ele tem que me levar pra pra outra tela com algumas modificações como TextArea1 para que possamos responder chamado… só que quando eu faço isso não consigo manter as informações que eu trouxe da primeira tela pra essa última com a resposta ???

    • Diego Macêdo disse:

      Nesta nova tela, você deve fazer uma consulta ao BD e capturar as informações referente a este chamado e exibir na pagina como texto ou até mesmo no formulário. Daí, quando você enviar a “resposta”, simplesmente basta dar um UPDATE ou INSERT na linha do BD referente a este chamado (vai depender de como suas tabelas estão organizadas).

      Creio que dê pra entender a explicação. Seu problema era só fazer a consulta novamente desse chamado. Quando você for fazer o link do botão RESPONDER, coloca o ID do chamado como parâmetro GET e faz a consulta a partir disso. Qualquer coisa dá uma olhada na postagem sobre GET e POST aqui no blog. =)

      • Diego disse:

        sim, mas no primeiro link que mostra o chamado eu clico blz ele preenche do jeito que eu preciso o visual ai tenho um botão que se chama resposta quando clico nele chamo outra pagina porém mesmo refazendo a consulta no BD ele não traz as informações… ?

        • Diego Macêdo disse:

          Pode ser a sua consulta que está sendo feito errada ou até mesmo não está sendo feita. Seria bom você postar isso em algum fórum, iMasters por exemplo, e o pessoal vai ter ajudar melhor olhando o código.

  5. Plínio disse:

    Gostei cara, bem explicado e detalhado.

Deixe um comentário para Diego Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *