Ir para conteúdo
Fórum Script Brasil
  • 0

<option> selecionada de acordo com o BD


lamatta

Pergunta

Olá amigo, estou preparando um formulario de cliente e no mesmo tenho alguns <select> com varias <options> até ai OK mas eu quero incrementar uma nova pagina para alteração do formulario, exemplo, no meu formulario de cadastro eu tenho um <select> para classificar o cliente e nas suas <option> eu tenho as seguintes opções, NORMAL, ESPECIAL, PROSPECÇÃO, LISTA NEGRA... a baixo a tabela no banco de dados

tb_cat_clientes

id_cc | nome_cc

1 | Normal

2 | Especial

3 | Prospecção

4 | Lista Negra

no meu formulario eu faço a busca desses valores e exibo o <select> de acordo

<select name="cat_cliente">
<?php
   $sql = "SELECT * FROM tb_cat_clientes ORDER BY id_cc"; 
   $limite = mysql_query ("$sql");    
   while ($sql = mysql_fetch_array($limite)) {
     $id_cc = $sql["id_cc"];
     $nome_cc = $sql["nome_cc"];
                        
   echo "
          <option value='$id_cc'>$nome_cc</option>
   ";
   }
?>
</select>
Logo o meu codigo da pagina de cadastro fica assim
<select name="cat_cliente">
   <option value='1'>Normal</value>
   <option value='2'>Especial</value>
   <option value='3'>Prospecção</value>
   <option value='4'>Lista Negra</value>
</select>
Em uma pagina qualquer eu exibo os clientes cadastrados e seus nomes são links que os encaminham para pagina de ALTERAÇÕES... Mas na verdade essa pagina de alteração é a mesma pagina de cadastro.... O que eu fiz? Criei um GET no topo do codigo, que capitura uma ID de cliente, daí eu tenho após uma condição, SE o GET vier vazio todos os campos do formulario, no caso as <input>, não terão valores preenchidos e o botão de concluir o formulario encaminha esses dados para um PHP que cadastra um novo cliente no BD... Caso esse IF vier preenchido com alguma ID, no caso a do cliente, os campos desse meu formulario irão aparecer preenchidos com os VALUES do cadastro encontrado no BD... Espero que todos tenham entendido... Porém, se um cliente for classificado como LISTA NEGRA, na tabela do cliente estará desse jeito tb_cliente nome_cliente | cat_cliente | João caloteiro | 4 Porém ao fazer a alteração de cadastro de cliente a <select> vai mostrar a <option>Normal</option> como primeira opção e se o usuario não prestar atenção nisso pode sem querer alterar a classificação do cliente, a não ser que eu coloque um selected="selected" na <optio>... Então basicamente é isso... Eu quero a ajuda de voces para colocar uma selected="selected" na <option> de acordo com a classificação encontrada anteriormente no BD para que o formulario fique assim
<select name="cat_cliente">
   <option value='1'>Normal</value>
   <option value='2'>Especial</value>
   <option value='3'>Prospecção</value>
   <option value='4' selected="selected">Lista Negra</value>
</select>

Desde já Obrigado...

Editado por fercosmig
add tag's
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
o correto não selected="selected" e sim apenas selected
<option value='4' selected>Lista Negra</value>
Ok, Mas eu quero ajuda para criar um script que insira o SELECTED nas OPTIONS de acordo com o VALUE já criado anteriormente no BD ex: se João caloteiro for NORMAL fica assim
<select name="cat_cliente">
<option value='1' selected>Normal</value>
<option value='2'>Especial</value>
<option value='3'>Prospecção</value>
<option value='4'>Lista Negra</value>
</select>
se ele for ESPECIAL fica assim
<select name="cat_cliente">
<option value='1'>Normal</value>
<option value='2' selected>Especial</value>
<option value='3'>Prospecção</value>
<option value='4'>Lista Negra</value>
</select>
se for PROSPECÇÃO
<select name="cat_cliente">
<option value='1'>Normal</value>
<option value='2'>Especial</value>
<option value='3' selected>Prospecção</value>
<option value='4'>Lista Negra</value>
</select>
e se for LISTA NEGRA
<select name="cat_cliente">
<option value='1'>Normal</value>
<option value='2'>Especial</value>
<option value='3'>Prospecção</value>
<option value='4' selected>Lista Negra</value>
</select>

Editado por fercosmig
add tag's
Link para o comentário
Compartilhar em outros sites

  • 0
só fazer uma verificação a cada opção ex:
echo '<option value="'.$id_cc.'"';
if($id_cc == 1){
echo ' selected';
}
echo '>Normal</option>';

Ai você faz isso para as 4 opções

Ah.. e a propósito, o lugar disso aqui não é em PHP?

vou tentar... Mas enfim, eu pensei que iria partir pra um javascript pra rodar a opção... Mas obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0

Ok... Ficou um pouco confuso mas percebi o que o amigo vini_loock passou...

bem fazer um por um não vai ser muito util... mas já me deu uma luz gigante... o que acontece é que tenho 4 categorias pra clientes, se futuramente eu cadastrar mais um... ou Dez... vou ter que mecher nessa pagina de cadastro... por isso que eu criei uma tabela de categoria... e um script em php monta as <options> pra mim...

<select name="cat_cliente">
<?php
$sql = "SELECT * FROM tb_cat_clientes ORDER BY id_cc";
$limite = mysql_query ("$sql");
while ($sql = mysql_fetch_array($limite)) {
$id_cc = $sql["id_cc"];
$nome_cc = $sql["nome_cc"];

echo "
<option value='$id_cc'>$nome_cc</option>
";
}
?>
</select>

como já havia escrito... alguém pode me ajudar com mais alguma coisa? desde já agradeço...

Editado por fercosmig
add tag's
Link para o comentário
Compartilhar em outros sites

  • 0

Resolvi... Eu parei no tempo e não percebi que já tinham me dado a resposta... UAheUA

ficou assim...

Busca das informações dos clientes

$sql = "SELECT * FROM tb_cliente WHERE id_cliente = '$id_cliente'";

$limite = mysql_query ("$sql");

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

$nome_cliente = $sql["nome_cliente"];

$cat_cliente = $sql["cat_cliente"];

}

então como eu já tinha a informação da categoria do cliente em mão, só precisaria comparar no formulario... de acordo com o que o vini_loock deu a dica

<?

$sql = "SELECT * FROM tb_cat_clientes";

$limite = mysql_query ("$sql");

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

$id_cc = $sql["id_cc"];

$nome_cc = $sql["nome_cc"];

echo '<option value="'.$id_cc.'"';

if($id_cc == $cat_cliente){

echo ' selected';

}

echo '>'.$nome_cc.'</option>';

}

?>

Muito bacana... Agora eu concordo que isso deveria estar em PHP... Se algum moderador puder mudar, agradeço...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...