Listagens em DropdownList com itens da Base Dados (MySQL)
2006-08-25

Muitas vezs em formulários não queremos editar os itens de selecção manulamente, mas sim ir busca-los a uma base de dados, sobretudo quando são numerosos, além de que torna uma organização geral muito mais flexivel. Neste exemplo seguinte criamos uma função para esse efeito específico que recebe valores e trabalha com eles. Para aceder à base de dados é também necessário especificar a conexão como é obvio, e que é feito logo no topo do código PHP.
Para este exemplo usamos uma base de dados ficticia de nomes de cidades que o utilizador deve escolher no formulário.
<?php
// conectar à base de dados
@mysql_connect('localhost', 'login', 'password')
or die("Não foi possível fazer ligação ao MySQL server");
@mysql_select_db("bd_cidades")
or die("Não foi possível usar a base de dados escolhida");
function criar_dropdown($identificador, $pares, $primeira_entrada)
{
$dropdown ="<select name="$identificador">";
$dropdown .="<option value="0">$primeira_entrada</option>";
foreach($pairs as $valor => $cidades_nome)
{
$dropdown.="<option value="$valor">$cidades_nome</option>";
}
$dropdown.= "</select>";
return $dropdown;
}
$sql="SELECT cidades_id, cidades_nome FROM cidades ORDER BY cidades_id";
$resultado = mysql_query($sql);
$mensagem ="";
while($row = mysql_fetch_array($resultado))
{
$value= $row["cidades_id"];
$cidades_nome = $row["cidades_nome"];
$pares["$valor"] = $cidades_nome;
}
if ( isset($_POST['btn_escolher_cidade']))
{
$cidades_id = $_POST['cidades'];
if(intval($code_cat_id)==0)
{
$mensagem="tem de escolher uma cidade";
}
else
{
$mensagem =" a cidade escolhida é " . $pares[intval($cidades_id)] ;
}
}
?>
|
Quando usamos a função estamos a construir as opções de escolha; mais tarde no código html, chamamos a função no sitio onde queremos introduzir a dropdown criada no nosso formulario.
O código html de exemplo é o seguinte:
<html>
<head>
</head>
<body>
<table border="1" width="400">
<form action="<?php print $_SERVER['PHP_SELF'];?>" method="POST">
<tr>
<td>
Escolher cidade
</td>
<td>
<?php print criar_dropdown("cidades", $pares, "escolher cidade:"); ?>
</td>
</tr>
</form>
</table>
<input name="btn_escolher_cidade" type="submit" value="OK">
<br/><br/>
<?php print $mensagem;?>
</body>
</html>
|
Caso queiramos que haja um valor ja seleccionado por defeito na dropdown editamos a função criar_dropdown da seguinte forma:
<?php
function criar_dropdown($identificador, $pares, $primeira_entrada,
$chave_seleccionada)
{
$dropdown ="<select name="$identificador">";
$dropdown .="<option value="0">$primeira_entrada</option>";
foreach($pairs as $valor => $cidades_nome)
{
$dropdown.=($valor==$chave_seleccionada)?"<option value="$valor"
selected="selected">$cidades_nome</option>":"<option
value="$valor">$cidades_nome</option>";
}
$dropdown.= "</select>";
return $dropdown;
}
?>
|
temos depois de ter em conta que quando chamamos a função temos de entrar com mais um parametro, a chave seleccionada por defeito:
<?php print criar_dropdown("cidades", $pares, "escolher cidade:", $chave); ?>
|
Escrito por Tânia Penedo Website do autor: http://www.taniapenedo.com Dados do autor: Programação multi-plataforma; C#, PHP, Java, MySQL, SQL-Server.
|