Enviado dados para o PHP através de formulário - Diego Macêdo
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:
Text e Textarea
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 />
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":
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.
Neste tipo de campo, precisamo definir um "value", que será o valor enviado através do camop de forma já definida.
<input type="hidden" name="macaco" value="banana" />
echo $_POST['macaco']; // Receberá o valor "banana"
Campo Text e Textarea
<textarea name="mensagem" id="textarea" cols="45" rows="5"></textarea>
echo $_POST['mensagem'];
<input type="checkbox" name="valor" value="10" />
Mais uma diferença no tipo SELECT, pois nele definimos normalmente o "name" e os "values" são definidos em cada "<option>".
<select name="sexo" id="select">
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"
14 de maio de 2016 às 23:52
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 .
Muito bom…. aprendi coisas que em 3 semestres e eu nao consegui enteder.. Muito bom
Raimundo Marvin disse:
Muito bem explicado parabéns .!
Não funciona…nunca consegui fazer isto;(
Qual motivo pra você não conseguir?
É 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 ???
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. =)
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… ?
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.