Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => -1
            [id] => 490403
            [titulo] => SELECT/LIST PHP PDO
            [dataCadastro] => DateTime Object
                (
                    [date] => 2014-08-27 18:56:01
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 244531
            [status] => A
            [isExample] => 
            [NomeUsuario] => Ronaldo Lanhellas
            [Apelido] => 
            [Foto] => 244531_20150129162200.jpg
            [Conteudo] => Este é o componente que você precisa: http://jqueryui.com/autocomplete/
        )

)

SELECT/LIST PHP PDO

PHP
João Vitor
   - 25 ago 2014

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:
#Código

<?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.

Burg
   - 27 ago 2014

nesse caso voce precisa de um auto complete com os clientes de sua tabela "clientes", usa o autocomplete do jquery ui.

Burg
   - 27 ago 2014

nesse caso voce precisa de um auto complete com os clientes de sua tabela "clientes", usa o autocomplete do jquery ui.

Ronaldo Lanhellas
   - 27 ago 2014

Este é o componente que você precisa: http://jqueryui.com/autocomplete/

João Vitor
   - 28 ago 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.

#Código


					    <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>



João Vitor
   - 28 ago 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.

#Código


					    <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>



João Vitor
   - 28 ago 2014

....

Ronaldo Lanhellas
   - 28 ago 2014


Citação:
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.

#Código


					    <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.