Cadastros de dados no MySQL Depois do nosso entendimento sobre como funciona o envio de dados atravé s de um formulário para o PHP, como conectar com o MySQL, agora poderemos aprender a cadastrar os registros capturados no BD. Começaremos utilizando o nosso formulário e o arquivo que captura as informações que foram dados de exemplo anteriormente e daremos continuidade. O Banco de dados e a Tabela Paa quem não lembra como criar uma base de dados e uma tabela, pode conferir nos tópicos do nosso curso de PHP. Criaremos um BD para nossos estudos chamado aprendendo_php e tabela chamada agenda, seguindo o esquema abaixo: CREATE DATABASE `aprendendo_php` DEFAULT CHARACTER SET latin1 COLLATE latin1_bin; CREATE TABLE `aprendendo_php`.`agenda` ( `id` INT( 255 ) NOT NULL AUTO_INCREMENT PRIMARY KEY, `nome` TEXT NOT NULL, `telefone` TEXT NOT NULL ) ENGINE = MYISAM ; Formulário de Cadastro (agenda_form.php) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>agenda - Formulário de Cadastro</title>
</head> <body> <form id="formulario" name="formulario" method="post" action="cadastrar_agenda.php"> <p>nome: <input type="text" name="nome" id="nome" /> </p> <p>telefone: <input type="text" name="telefone" id="telefone" /> </p> <p> <input type="submit" name="button" id="button" value="cadastrar" /> </p> </form> </body> </html> Conexão com o BD do MySQL (conexao.php) Como estou utilizando o EasyPHP, informei o usuario root e a senha vazia. $servidor = "localhost"; $usuario = "root"; $senha = ""; $banco = "aprendendo_php"; $conexao = mysql_connect($servidor, $usuario, $senha); $bd = mysql_select_db($banco, $conexao); if(!$conexao){ echo "Não foi possível conectar com o BD!"; if(!$bd){ echo "Não foi possível selecionar o BD!"; } }
Capturando dados e cadastrando no BD (agenda_cadastrar.php) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>agenda - Cadastrando</title> </head> <body> // Incluímos o arquivo de conexão para efetuar a conexão com o BD e selecionar o BD include_once('conexao.php'); // Faremos a captura de dados do formulário e criaremos as devidas variáveis $nome = $_POST['nome']; $telefone = $_POST['telefone']; // Criamos o SQL a ser executado para cadastrar em nossa tabela $sqlcadastra = "INSERT INTO `agenda` (`id`, `nome`, `telefone`) VALUES (NULL, '".$nome."', '".$telefone."');"; // Executamos o comando SQL $cadastrar = mysql_query($sqlcadastra, $conexao); // Faz o teste se foi cadastrado e informa uma mensagem if($cadastrar){ // Aqui fica o código de exibição quando o cadastro for realizado com sucesso! echo "SUCESSO! Seu cadastro foi feito!<br />"; echo "<a href=\"agenda_form.php\">clique aqui para voltar</a>";
}else{ // Aqui fica o código de exibição quando o cadastro não for possível ser feito por causa de algum erro! die("erro - Seu cadastro não pode ser realizado: ".mysql_error()); } </body> </html> Perceba que ao acessar o formulário você irá preencher os dois campos, nome e telefone. Após o envio, os dados serão capturados no arquivo agenda_cadastrar.php e inseridos no BD. O código está todo comentado explicando o passo-a-passo. Após cadastrar, vá até o seu BD pelo PHPMyAdmin e entre na tabela criada para ver os registros. Nas próximas postagens irei demonstrar como fazer a listagem dos registros de uma tabela, assim como excluir e editá-los. Como exercício, você pode tentar implementar mais campos no seu BD, e consequentemente no seu formulário também para melhorar o código. Crie campos para e-mail, separe os números para telefone comercial, telefone residencial, celular, e o que mais você quiser. Espero que tenham aprendido e gostado. Fico no aguardo das dúvidas. Abraços! 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 : 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: 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: echo $_POST['email']; echo $_POST['mensagem']; Campo Checkbox HTML: <input type="checkbox" name="valor" value="10" /> 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: 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! Como limpar um campo input text ao clicar Sabe quando você vai em um site que tem um formulário que já está com o campo input texto preenchido e quando você clica nele o texto some para você poder preencher com os seus dados?
É essa façanha que vou mostrar pra vocês. Bom, eu estive dando uma pesquisada a respeito disso e vi alguns códigos na internet que não funcionavam e achei uma solução super simples e direta. Suponha que temos o seguinte formulário: <form name="formmail" id="formmail" action="email.php" method="post"> <input name="email" id="email" value="seu@email.com.br" /> <input type="submit" name="btn_enviar" id="btn_enviar" value="enviar" /> </form> Até então, nada complicado. Agora o segredo é você adicionar no campo input text que você quer fazer o efeito a seguinte propriedade e valor: onfocus="this.value='';" Seu código final ficará assim: <form name="formmail" id="formmail" action="email.php" method="post"> <input name="email" id="email" value="seu@email.com.br" onfocus="this.value='';" /> <input type="submit" name="btn_enviar" id="btn_enviar" value="enviar" /> </form> Explicando o código: onfocus = Quando o manipulador de eventos estiver em foco nesta tag; this.value = Pega o valor e atribui para vazio, ou seja, duas aspas simples sem nada dentro; Simples não? Espero que seja útil pra alguns que precisarem ou simplesmente quiserem dar um charme em seus formulários, ajudando aos
visitantes mais leigos quando não sabem realmente o que deve ser preenchido no campo. Aproveitei e acabei implementando aqui no meu blog, na lateral direita onde tem Receber novidades por E-mail. =) Abraços e não deixem de comentar e votar!