Hoje veremos como preencher dinamicamente um formulário
utilizando um menu do tipo “select” (também conhecido como “dropdown”) em PHP,
utilizando PDO e banco de dados MySQL. Utilizaremos a tabela de amigos desse
post: busca simples com pdo e mysql e para o menu dinâmico utilize o tutorial: menu dropdown dinamico em php com pdo. Isso tudo sem
precisarmos usar nenhuma linguagem “client-side”.
O “truque” para isso é utilizar dois formulários; no 1º
colocaremos o menu drop down; neste tuto o drop down exibirá os nomes dos
amigos e no formulário serão exibidos os detalhes do amigo selecionado, como
e-mail, data de nascimento e telefone (vc pode acrescentar outras informações,
como endereço, profissão etc. – use sua imaginação).
Etapa 1 - criando o drop down dinâmico
Abra seu editor e utilize o código abaixo – repare que já adicionamos, para facilitar, um formulário simples com o “drop down”:
Abra seu editor e utilize o código abaixo – repare que já adicionamos, para facilitar, um formulário simples com o “drop down”:
<?php
//aqui
a conexão
include
("conexao.php");
// executa consulta à tabela
$stmt = $con->prepare("select id, nome from amigos");
$stmt->execute();
?>
Selecione
o nome do amigo:
<p>
<form name="form1"
method="post" action="">
<select name="cxnome"
id="cxnome">
<?php
while($registros
= $stmt->fetch(PDO::FETCH_OBJ)){
?>
<option
value="<?php echo $registros->id;?>"><?php echo
$registros->nome;?></option>
<?php
}
?>
</select>
<input
type="submit" name="pesquisa"
value="Pesquisar">
</form>
<br
/>
2. Salve e teste no navegador. O "dropdown" já deverá estar funcionando:
Etapa II - criando o 2º formulário
3. Agora é só acrescentar uma 2ª consulta ao banco de dados e preencher um 2º formulário com os dados recuperados:
Etapa II - criando o 2º formulário
3. Agora é só acrescentar uma 2ª consulta ao banco de dados e preencher um 2º formulário com os dados recuperados:
<?php
$id=$_POST['cxnome'];
if(isset($_POST['pesquisa']))
{
$stmt2 = $con->prepare("select * from amigos
where id=?");
$stmt2->bindValue(1, $id);
$stmt2->execute();
while($registros2 = $stmt2->fetch(PDO::FETCH_OBJ)){
?>
</p>
<form name="form2" method="post"
action="">
<label>E-mail:
<input
name="cxemail" type="text" value="<?php echo
$registros2->email; ?>">
</label>
<br />
<label>Telefone:
<input
name="cxtel" type="text" value="<?php echo
$registros2->telefone; ?>">
</label>
<br />
<br />
<label>Nascimento:
<input
name="cxnasc" type="text" value="<?php echo
$registros2->nascimento; ?>">
</label>
</form>
<p> </p>
<?php
}
}
?>
3. Salve e teste
no navegador:
4. Agora é com você; dê um “trato” no visual e a tarefa está pronta!