sexta-feira, 14 de dezembro de 2018

Cadastro com drop down dinâmico com PHP e MySQL


Hoje veremos como criar um cadastro com drop down (ou menu “select option”) dinâmico; isto é, quando parte das informações estão numa tabela do banco de dados e farão parte de outra tabela. Neste caso de exemplo, é um cadastro de convidados indicados por um amigo (estes estão na nossa já conhecida tabela de amigos). O primeiro passo é ter a tabela de amigos; se não a tiver, veja aqui:

A seguir vamos criar a tabela de convidados; é quase igual, só não esqueça de adicionar a coluna com o “id” do amigo:


CREATE TABLE `convidado` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `nome_convidado` varchar(50) NOT NULL,
  `fone_cel` varchar(50) DEFAULT NULL,
  `responsavel` int(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1

Agora vamos criar o menu dropdown com a lista dos amigos:

<?php
include('conexao.php');
$resp = mysqli_query($con,"SELECT * FROM amigos");
?>

<!DOCTYPE html>
<html>
<head>
<title>ControlTable</title>
</head>

<body>
<h2>cadastro de convidados</h2>

<form action="insere-conv.php" method="POST" name="form1" id="form1">

<br>
<label>responsavel:
<select name="responsavel">
<option>selecione um responsavel</option>

<?php
while ($linhas_resp = mysqli_fetch_assoc($resp)) {
?>

<option value="<?=$linhas_resp['id']?>"><?=$linhas_resp['nome']?></option>

<?php
}
?>

</select>

</label>

<label for="nome_convidado"><br>
NOME convidado:</label>
<input type="text" class="form-control" id="nome_convidado" name="nome_convidado">
<label for="fone_cel"><br>
telefone:</label>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="text" class="form-control" id="fone_cel" name="fone_cel">
<br>
<button type="submit" class="btn btn-primary">INCLUIR</button>
</form>

</body>
</html>

Agora a página de cadastro propriamente dita:

<?php
include("conexao.php");

$query = "INSERT INTO convidado
                (nome_convidado,
                fone_cel,
                responsavel)
            VALUES
                ('".$_POST['nome_convidado']."',
                '".$_POST['fone_cel']."',           
                '".$_POST['responsavel']."')";

echo $query;

$queryExec = mysqli_query($con,$query) or die('ERRO ao inserir registro no Banco');

$con->close();

?>
Bem simples. Agora faça alguns testes e verifique; sua tabela de convidados deverá ficar assim: