<? /************************************************************************************* /************************************************************************************* ** DropDrop Down multiuso ** **----------------------------------------------------------------------------------** **----------------------------------------------------------------------------------** ** Autor: ALex Piaz <webmaster@globalmap.com> 01/2001 ** ** ** ** ** ** $tipo: Diz se vamos buscar o resultado em um database ou se vamos usar um array ** **----------------------------------------------------------------------------------** ** $tipo = 1 -> array ** ** $tipo = 2 -> database Mysql ** **----------------------------------------------------------------------------------** ** $query: Se tipo for 1, entra a� o array, se for 2, entra a query ** ** ** ** A consulta ter� que ter sempre 2 par�metros de retorno, o que voc� deseja como id** ** � esquerda, o o label � direita. ** **----------------------------------------------------------------------------------** ** $var -> vari�vel que confrontaremos com o resultado da query/array para que ** **----------------------------------------------------------------------------------** ** o combo fique checado ** ** $nome_form -> O nome do combo ** **----------------------------------------------------------------------------------** ** EXEMPLO ** **----------------------------------------------------------------------------------** ** $tipo = 1 -> Array e quero que a fruta ma�� seja selecionada ** ** ** ** $query = array(\"Uva\",\"Ma��\",\"P�ra\"); ** ** DropDown(1,$query,\"Ma��\",\"Frutas\"); ** ** ** ** $tipo = 2 -> Mysql, quero definir um label est�tico ** ** Para definir um label est�tico, basta colocar # antes do texto, e jogar isso pra ** ** vari�vel $var ** ** ** ** $query = \"SELECT id,nome FROM lista\"; ** ** $var = \"#Escolha aqui o nome da pessoa\"; ** ** $nome_form = \"nomes\"; ** ** //Chamando a fun��o: ** ** DropDown(2,$query,$var,$nome_form); ** /************************************************************************************* /************************************************************************************* */ function DropDown($tipo,$query,$var,$nome_form) { //Imprimo o comeco do combo print\"<select name=\\\"$nome_form\\\" size=\\\"1\\\">\\n\"; //Preparo o label, se tiver if($var[0] == \"#\")://O cara n�o quer selecionar um item e quer um laber pro check $label = substr($var,1,strlen($var)); print\"<option selected>$label</option>\\n\"; endif; //Vejo o tipo if($tipo == 1): //Array $lista = $query; while (list($key, $value) = each($lista)) { if($value == $var): $selected = \"selected\"; else: $selected = \"\"; endif; print\"<option value=\\\"$key\\\" $selected>$value</option>\\n\"; } elseif($tipo == 2): //Mysql $result = mysql_query($query); while($row = mysql_fetch_row($result)) { if($row[0] == $var): $selected = \"selected\"; else: $selected = \"\"; endif; print\"<option value=\\\"$row[0]\\\" $selected>$row[1]</option>\\n\"; } endif; print\"</select>\\n\"; } ?> <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"> <html> <head> <title>Drop Down Multuso</title> </head> <body> <p>Esta função php, desenvolvida por <a href=\"mailto:webmaster@globalmap.com\">Alex Piaz</a> , foi projetada para facilitar a vida do programador na hora de construir menus tipo drop-down que tenham que manter seu estado, ou não. Ela aceita arrays ou querys no mysql como parâmetro de comparação e label personalizado para o caso de você não precisar usar o recurso de manutenção do estado. Você pode fazer o que quiser com este código, ele é grátis e livre.</p> <p>Exemplo com Array:<br><br> <? $bandas = array(\"1\"=>\"Rush\",\"2\"=>\"Enchant\",\"3\"=>\"Yes\",\"4\"=>\"Dream Theater\",\"5\"=>\"Marillion\",\"6\"=>\"Jethro Tull\"); ?> 1.) Definindo um label<br><br> <? DropDown(1,$bandas,\"#O Rush � a melhor banda do planeta\",\"bandas\"); ?> <br><br> 2.) Pr�-checando um item<br><br> <? DropDown(1,$bandas,\"4\",\"bandas\"); ?> </p><hr noshade> Exemplo com mysql (voc� vai precisar configurar o acesso a um db qualquer em seu servidor para ver isso funcionar):<br><br> <? $query = \"SELECT qualquercoisa,maisoutra FROM qualquerlugar\"; DropDown(2,$query,\"#O Rush � a melhor banda do planeta\",\"o_nome_do_seu_form\"); ?> </body> </html>