Artigos / Tekever.eu

Artigos de desenvolvimento e opinião em tecnologia.

Secções:

Linux | Windows | .NET / ASP | LAMP | Java | Só Conversa |

 


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.

Comentários

Faça um comentário

Comentário

Nome
E-mail

Este comentário só ficará válido depois de fazer clique no link que lhe será enviado já a seguir para o e-mail indicado. Como tal garanta que o seu e-mail está válido e operacional, se não receber o nosso e-mail verifique os seus filtros de SPAM, ou a caixa de Lixo/Trash do seu cliente de e-mail.

 

Avaliar artigo

Avalie este artigo

 



Nome
E-mail

Este voto só ficará contabilizado depois de fazer clique no link que lhe será enviado já a seguir para o e-mail indicado. Como tal garanta que o seu e-mail está válido e operacional, se não receber o nosso e-mail verifique os seus filtros de SPAM, ou a caixa de Lixo/Trash do seu cliente de e-mail.

 

 

 

 

Recomendar este artigo a alguém

Envie a alguém conhecido

De:  
Nome E-mail
 
Para:  
Nome E-mail
Será enviado um link da página deste artigo para o e-mail que indicar como destino.