Jump to content


Photo

Combobox()


  • Faça o login para participar
6 replies to this topic

#1 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 31/03/2006, 08:17

Título: comboBox()
Descrição: Gera um combo box a partir de uma array!

---------------------------------------------------------------

Sintaxe: comboBox(str nome, str classe, array dados, str selected, str atributos);
Retorno: Misto
Descrição: Gera um combo box a partir dos dados de uma array. A str nome é o nome do select que será criado (necessária), a str classe é pra quem utiliza css e quer fazer a formatação do select (opcional), a array dados contém as opções que serão geradas (necessária), str selected é pra definir se alguma opção virá selecionada por padrão (opcional), isso é bom pra caso você queria que uma opção venha selecionada usando uma variável $_GET ou $_POST por exemplo, e por último a str atributos (opcional) para atributos extras do select (disabled por exemplo.)
Bibliotecas: Nenhuma
Limitações: PHP 4.0+

<?php

function comboBox($nome, $class = "", $dados, $selected = 1, $atributos = "")
{
	$count = count($dados);
	echo "<select name=\"" . $nome . "\" class=\"" . $class . "\" $atributos>";
	$i = 0;
	do {
			echo "<option value=\"" . $i . "\" ".(($i == $selected-1)? "selected":"").">" . $dados[$i] . "</option>";
		++$i;
	} while ($i < $count);
} 

?>


Exemplo de Utilização:

$estados = array("Acre", "Alagoas", "Amapá", "Amazonas", "Bahia", "Ceará", "Distrito Federal", "Espírito Santos", "Goiás", "Maranhão", "Mato Grosso", "Mato Grosso do Sul", "Minas Gerais", "Paraná", "Paraíba", "Pará", "Pernambuco", "Piauí", "Rio de Janeiro", "Rio Grande do Norte", "Rio Grande do Sul", "Rondônia", "Roraima", "Santa Catarina", "Sergipe", "São Paulo", "Tocantins",);

comboBox('estados','comboBox', $estados,'26', 'disabled=disabled');

Essa é pra quem não aguenta mais digitar "Acre", "Alagoas", "Amapá".... :assobio:
----------------------------
Editei pra deixar o código mais enxuto e explicar melhor como usa-lá.

Edição feita por: bimonti, 31/03/2006, 08:34.

WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#2 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 31/03/2006, 12:58

Grande garoto (é garoto ou é velho já :lol:)

Se você quer ajudar mais ainda faz aqueles arrays de Países ou de Cidades do Brasil
kkkkkkkk

Brincadeira, assim tá muitissimo bom já.

------
EDIT
------

Se quiser fazer os das cidades eu tenho aqui um aqruivinho SQL com todas elas.

Instruções SQL com Cidades do Brasil e seus referentes estados

Esse arquivo foi criado pela Revista InfoExame, para um tutorial sobre AJAX da revista.

Abraços

Edição feita por: Jackpot, 31/03/2006, 13:22.


#3 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 31/03/2006, 16:06

Não preciso fazer um array com essas cidades, a minha função gera os dados com um array, então creio que é só fazer uma consulta no banco de dados e usar o fetch_array ... ae vc usa ele como parametro pra função ...
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#4 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 31/03/2006, 18:06

Eu sei, hehe.
É pra ver se você tava acordado :lol:

Mas é bom pra quem quiser, já taí.

Abraços

#5 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 31/03/2006, 22:59

Olá pessoal!!!

Juntei a muito interessante (pelomenos pra mim) função do bimonti com o comentário do Jackpot.

Espero que esteja certinho :P

Pelomenos aqui funcionou.

O que tem que ser feito???

Fazer o download do arquivo SQL que o Jackpot colocou ali no post dele, colocar em seu banco de dados, fazer a conexão e pronto.

<?php
// Inicio da conexão com o banco de dados
$conexao = mysql_connect('localhost', 'root', '') or die ("Não foi possível conectar-se ao servidor MySQL");
$db = mysql_select_db('teste') or die ("Não foi possível selecionar o banco de dados <b>$dbname</b>");
// Fim da conexão com o banco de dados

// JavaScript para fazer o reload após selecionar um estado no comboBox
echo"<script language=\"JavaScript\" type=\"text/JavaScript\">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+\".location='\"+selObj.options[selObj.selectedIndex].value+\"'\");
  if (restore) selObj.selectedIndex=0;
}
//-->
</script>";

// INICIO do código do "bimonti"
function comboBox($nome, $class = "", $dados, $dados_uf, $selected = 1, $atributos = "")
{
	$count = count($dados);
	echo "<select onchange=\"MM_jumpMenu('parent',this,0)\" name=\"" . $nome . "\" class=\"" . $class . "\" $atributos>";
	echo "<option>Selecione Seu Estado</option>";
	$i = 0;
	do {
			// $nestado - parte do código onde contará qual estado estará selecionado após o reload da pagina
			$nestado = $i + (1);
			// Aqui tambem tive que fazer umas modificaçõezinhas
			// Só observar ai que da pra ver o que foi
			echo "<option value=\"estados_cidades.php?estado=" . $dados_uf[$i] . "&est=$nestado\" ".(($i == $selected-1)? "selected":"").">" . $dados[$i] . "</option>";
		++$i;
	} while ($i < $count);
	echo"</select>";
}
// FIM do código do "bimonti"
?>

<?
// Array com o nome dos estados
$estados = array("Acre", "Alagoas", "Amapá", "Amazonas", "Bahia", "Ceará", "Distrito Federal", "Espírito Santos", "Goiás", "Maranhão", "Mato Grosso", "Mato Grosso do Sul", "Minas Gerais", "Paraná", "Paraíba", "Pará", "Pernambuco", "Piauí", "Rio de Janeiro", "Rio Grande do Norte", "Rio Grande do Sul", "Rondônia", "Roraima", "Santa Catarina", "Sergipe", "São Paulo", "Tocantins",);
// Array com as abreviações dos estados
$estados_uf = array("AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", "GO", "MA", "MT", "MS", "MG", "PR", "PB", "PA", "PE", "PI", "RJ", "RN", "RS", "RO", "RR", "SC", "SE", "SP", "TO",);

// Acesso a função
comboBox('estados','comboBox', $estados, $estados_uf, $est,'');

// Parte do código onde tem o ComboBox das cidades
// Caso o estado esteja vazio não aparecerá
// Caso esteja preenchido aparecerá a lista das cidades do estado selecionado
if($estado != ""){
echo"<br><select size='1' name='cidade'>";
$sql = mysql_query("SELECT * FROM cidades WHERE uf_cidade='$estado' ORDER BY nome_cidade");

while($d = mysql_fetch_array($sql)){

echo"<option value='$d[nome_cidade]'>$d[nome_cidade]</option>";

}
echo"</select></form>";
}
?>

Parece ter ficado grande mas é que tem um monte de comentários ai no meio. :P

Só espero que possa ser respondido assim. Nem sei se pode, mas, parece que ja vi modificações e/ou aperfeiçoamento de funções desse jeito.

Té mais pra vcs ;)

Walison(GENNF)
Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#6 Falci

Falci

    12 Horas

  • Usuários
  • 187 posts
  • Sexo:Masculino
  • Localidade:Brasil

Posted 09/06/2008, 00:01

Post antigo, mas vou postar mesmo assim...

Espero que naum se importe, mas melhorei a função um pouquinho:

function comboBox($nome, $dados, $selected = "", $class = "", $atributos = "")
{
	if(strlen($class)>0)
	   $class = " class=\"$class\"";

	$return = "<select name=\"$nome\"".$class." ".$atributos.">";

	foreach($dados as $value => $text)
	  $return .= "\n  <option value=\"$value\"".(($value == $selected)? " selected=\"selected\"":"").">$text</option>";

	$return .= "\n</select>";

	return $return;
}

Diferenças do anterior:
Os parametros opcionais no fim.
Select no padrão W3C (só faltou colocar 'selected=\"selected\"')
E o principal: agora tem como mudar o valor do "value", veja o exemplo:

$estados = array("AC" => "Acre",
				 "AL" => "Alagoas",
				 "AP" => "Amapá",
				 "AM" => "Amazonas",
				 "BH" => "Bahia",
				 "CE" => "Ceará",
				 "DF" => "Distrito Federal",
				 "ES" => "Espírito Santos",
				 "GO" => "Goiás",
				 "MA" => "Maranhão",
				 "MT" => "Mato Grosso",
				 "MS" => "Mato Grosso do Sul",
				 "MG" => "Minas Gerais",
				 "PR" => "Paraná",
				 "PB" => "Paraíba",
				 "PA" => "Pará",
				 "PE" => "Pernambuco",
				 "PI" => "Piauí",
				 "RJ" => "Rio de Janeiro",
				 "RN" => "Rio Grande do Norte",
				 "RS" => "Rio Grande do Sul",
				 "RO" => "Rondônia",
				 "RR" => "Roraima",
				 "SC" => "Santa Catarina",
				 "SE" => "Sergipe",
				 "SP" => "São Paulo",
				 "TO" => "Tocantins");

echo comboBox("estado",$estados,"PR");

<?php /* falci at Falci.me */

$naoAcrediroQueEuFizUmaVariavelTaoGrandeSoParaGuardarUmTres = 3;
?>

#7 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 13201 posts

Posted 25/09/2017, 17:07

Real Acticin Price No Prior Script Amex Next Day What Is Cortanmycetine Used For 2089 Cheap Paxil On Line cialis Zithromax Pharmacy
5mg Generic Cialis In Australia Comprar Cialis Internet Foro cialis Tetracycline For Sale
Online Pharmacy Viagra Generic Tarif Du Levitra 10 Mg cialis Was Ist Viagra Generikum Cialis 4 Stuck Immunity To Amoxicillin
Levitra Buy Australia cialis Keflex Cures Giardia




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq