Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Allotropos

[Resolvido] campo select com selected do BD

Recommended Posts

ola pessoal, bom, tenho uma tela de cadastro, e na mesma tela faço a edição tbm..

nessa tela tenho um campo select assim:

 

             <select name="cor" class="submit" id="cor" style="width:120px">
               <option value="Amarelo">Amarelo</option>
               <option value="Azul">Azul</option>
               <option value="Bege">Bege</option>
               <option value="Bordo">Bordo</option>
               <option value="Branco">Branco</option>
               <option value="Cinza">Cinza</option>
               <option value="Dourado">Dourado</option>
               <option value="Laranja">Laranja</option>
               <option value="Marrom">Marrom</option>
               <option value="Metalico">Metalico</option>
               <option value="Perola">Perola</option>
               <option value="Prata">Prata</option>
               <option value="Preto">Preto</option>
               <option value="Rosa">Rosa</option>
               <option value="Roxo">Roxo</option>
               <option value="Verde">Verde</option>
               <option value="Vermelho">Vermelho</option>
               <option value="Vinho">Vinho</option>
               <option value="Várias">Várias</option>  
                   </select>

 

preciso definir selected="selected" para a opção que foi salva no banco de dados..

tenho a variavel que pega o valor do banco ja, exemplo: "Preto"

 

Obs: ja encontrei no aqui no forum algo para trazer os valores do banco, mas nao eh isso que preciso, meus valores sao FIXOS, na verdade preciso definir APENAS qual foi que o cliente selecionou..

 

como faria para definir a opcao preta como selecionada?

 

vlw!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Allotropos,

 

O que você precisa fazer neste caso é comparar o valor de cada select option com o valor que vem do banco, na sua variável.

 

Um exemplo fácil de entender a sintaxe seria este:

<select name="cor" class="submit" id="cor" style="width:120px">
<?php
   /* Assumindo que $variavel_cor é onde esta guardado o valor da cor que vem do banco... */

   // Verifica se a cor que vem do banco é amarelo
   if($variavel_cor == "Amarelo") {
       echo "<option value=\"Amarelo\" selected=\"selected\">Amarelo</option>";
   }else {
       echo "<option value=\"Amarelo\">Amarelo</option>";
   }

   // Verifica se a cor que vem do banco é Azul
   if($variavel_cor == "Azul") {
       echo "<option value=\"Azul\" selected=\"selected\">Azul</option>";
   }else {
       echo "<option value=\"Azul\">Azul</option>";
   }
   ...
?>
</select>

 

Com certeza, iremos concordar que esta forma é didática mas não é prática. Certo?

Poderíamos até contraí-la assim:

<select name="cor" class="submit" id="cor" style="width:120px">
   <option value="Amarelo" <?php if($variavel_cor == "Amarelo") echo "selected=\"selected\""; ?> >Amarelo</option>
   <option value="Azul" <?php if($variavel_cor == "Azul") echo "selected=\"selected\""; ?> >>Azul</option>
   ...

 

Mas ainda assim nao ficaria legal. O que indico, é que você monte um array com as cores utilizando os values como chaves deste array. E depois montar o select em um loop.

Ficaria assim:

<select name="cor" class="submit" id="cor" style="width:120px">
<?php
$cores = array(
	"Amarelo" => "Amarelo",
	"Azul" => "Azul",
	"Bege" => "Bege",
	"Bordo" => "Bordo",
	"Branco" => "Branco",
	"Cinza" => "Cinza",
	"Dourado" => "Dourado",
	"Laranja" => "Laranja",
	"Marrom" => "Marrom",
	"Metalico" => "Metalico",
	"Perola" => "Perola",
	"Prata" => "Prata",
	"Preto" => "Preto",
	"Rosa" => "Rosa",
	"Roxo" => "Roxo",
	"Verde" => "Verde",
	"Vermelho" => "Vermelho",
	"Vinho" => "Vinho",
	"Várias" => "Várias"
);

foreach($cores as $valor_cor=>$nome_cor) {

	if($variavel_cor == $valor_cor) {
		// Caso a cor que venha do banco seja igual a cor que vamos imprimir, guarda a string do atributo "selected" em uma variavel
		$selected = "selected=\"selected\"";
	}else {
		// Caso contrario, grava a string vazia
		$selected = "";
	}

	echo "<option value=\"{$valor_cor}\" {$selected} >{$nome_cor}</option>";
}

?>
</select>

 

Qqr dúvida, grita aí q a galera ajuda ;)

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leo, perfeito! ajudou pra caramba!!!!

eu tinha feito o segundo método depois de ir fuçando fuçando e fuçando rsrsrs..

 

mas farei em array ate msm para praticar esse metodo!!!

 

obrigadao cara, resposta excelente e completa!! rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.