SELECT/LIST PHP PDO
Boa tarde pessoal, estou fazendo um cadastro simples em php, só que gostaria de uma ajuda para que ao invés de utilizar um input e ter que digitar toda hora no o nome de um cliente (que é o exemplo que estou utilizando) ele trazer as informações em um select/list do banco de dados.
segue o código que estou utilizando:
No caso iria fazer um select em outra tabela (Clientes) e puxar a informação para eu inserir na tabela chamados onde os campos são
id_cli (pk)
nome_cli var (50)
se alguém puder me ajudar a fazer esse select/list em pdo eu agradeço muito.
segue o código que estou utilizando:
<?php require 'database.php'; if ( !empty($_POST)) { // keep track validation errors $cliError = null; // keep track post values $cli = $_POST['cli_cham']; // validate input $valid = true; if (empty($cli)) { $cliError = 'Por favor insira o cliente'; $valid = false; } // insert data if ($valid) { $pdo = Database::connect(); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "INSERT INTO chamados (cli_cham) values(?)"; $q = $pdo->prepare($sql); $q->execute(array($cli)); Database::disconnect(); header("Location: index.php"); } } ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"> <link href="css/bootstrap.min.css" rel="stylesheet"> <script src="js/bootstrap.min.js"></script> </head> <body> <div class="container"> <div class="span10 offset1"> <div class="row"> <h3>Inclusão</h3> </div> <form class="form-horizontal" action="chamado.php" method="post"> <div class="control-group <?php echo !empty($cliError)?'error':'';?>"> <label class="control-label">Cliente</label> <div class="controls"> <input name="cli_cham" type="text" placeholder="cliente" value="<?php echo !empty($cli)?$cli:'';?>"> <?php if (!empty($cliError)): ?> <span class="help-inline"><?php echo $cliError;?></span> <?php endif; ?> </div> </div> <div class="form-actions"> <button type="submit" class="btn btn-success">Abrir Chamado</button> <a class="btn" href="index.php">Voltar</a> </div> </form> </div> </div> <!-- /container --> </body> </html>
No caso iria fazer um select em outra tabela (Clientes) e puxar a informação para eu inserir na tabela chamados onde os campos são
id_cli (pk)
nome_cli var (50)
se alguém puder me ajudar a fazer esse select/list em pdo eu agradeço muito.
João Vitor
Curtidas 0
Mais Respostas
Lucas Burg
25/08/2014
nesse caso voce precisa de um auto complete com os clientes de sua tabela "clientes", usa o autocomplete do jquery ui.
GOSTEI 0
Lucas Burg
25/08/2014
nesse caso voce precisa de um auto complete com os clientes de sua tabela "clientes", usa o autocomplete do jquery ui.
GOSTEI 0
Ronaldo Lanhellas
25/08/2014
Este é o componente que você precisa: http://jqueryui.com/autocomplete/
GOSTEI 0
João Vitor
25/08/2014
Eu consegui resolver de uma maneira bem mais simples no lugar da div do input coloquei o select e dentro dele eu faço uma select no banco e depois um foreach para listar as opção dentro de uma variável no option.
<div class="controls"> <select name="pri_cham" id="pri_cham"> <?php $pdo = Database::connect(); $sql = "SELECT cod_pri,nome_pri FROM prioridade ORDER BY id_pri"; foreach ($pdo->query($sql) as $row) { echo "<option value='".$row['cod_pri']."'>".$row['nome_pri']."</option>"; } Database::disconnect(); ?> </select> <?php if (!empty($prioError)): ?> <span class="help-inline"><?php echo $prioError;?></span> <?php endif; ?> </div>
GOSTEI 0
João Vitor
25/08/2014
Eu consegui resolver de uma maneira bem mais simples no lugar da div do input coloquei o select e dentro dele eu faço uma select no banco e depois um foreach para listar as opção dentro de uma variável no option.
<div class="controls"> <select name="pri_cham" id="pri_cham"> <?php $pdo = Database::connect(); $sql = "SELECT cod_pri,nome_pri FROM prioridade ORDER BY id_pri"; foreach ($pdo->query($sql) as $row) { echo "<option value='".$row['cod_pri']."'>".$row['nome_pri']."</option>"; } Database::disconnect(); ?> </select> <?php if (!empty($prioError)): ?> <span class="help-inline"><?php echo $prioError;?></span> <?php endif; ?> </div>
GOSTEI 0
João Vitor
25/08/2014
....
GOSTEI 0
Ronaldo Lanhellas
25/08/2014
Eu consegui resolver de uma maneira bem mais simples no lugar da div do input coloquei o select e dentro dele eu faço uma select no banco e depois um foreach para listar as opção dentro de uma variável no option.
<div class="controls"> <select name="pri_cham" id="pri_cham"> <?php $pdo = Database::connect(); $sql = "SELECT cod_pri,nome_pri FROM prioridade ORDER BY id_pri"; foreach ($pdo->query($sql) as $row) { echo "<option value='".$row['cod_pri']."'>".$row['nome_pri']."</option>"; } Database::disconnect(); ?> </select> <?php if (!empty($prioError)): ?> <span class="help-inline"><?php echo $prioError;?></span> <?php endif; ?> </div>
Mas o seu código não tem o "auto-complete" apenas mostra os valores do SELECT. O componente auto-complete do jquery lhe possibilita maiores recursos, mas se você precisa apenas mostrar os valores sem muita "frescura", então de fato a sua solução é a melhor.
GOSTEI 0