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!