..:: MX Studio Fóruns ::..: Tag Select na alteração de registros - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Tag Select na alteração de registros Como manter dados existentes com <select

#1 User is offline   fffilho 

  • Group: Membros
  • Posts: 6
  • Joined: 12-February 05

Posted 12 February 2005 - 10:06 AM

Olá!
Estou na minha primeira e simples aplicação cf. Aproveitei um código disponibilizado neste site e consegui executar as operações de inclusão, alteração e exclusão de registros. Entretanto, dando seqüência, gostatia de criar uma rotina de alteração de registros em que o valor do campo atual fosse sugerido pela tag select, ou seja, se as opções são 1, 2, 3, 4 ou 5 e no registro existente está gravada a opção 3, que o select apresente inicialmente a opção 3, de forma que, caso não seja alterada, o dado permaneça. Da forma em que estou fazendo, a opção default do select sempre é 1 (a primeira), e numa operação de alteração o usuário obrigatoriamente terá de entrar e marcar outra vez a opção que já estava lá (3). Tem como fazer isto?
0

#2 User is offline   proteus_adi 

  • Group: Membros
  • Posts: 154
  • Joined: 07-April 04

Posted 12 February 2005 - 03:09 PM

CODE
<cfselect name="nome" selected="3" visible="Yes" enabled="Yes" query="teste">
</cfselect>

0

#3 User is offline   ianrapha 

  • Group: Membros
  • Posts: 318
  • Joined: 26-February 04

Posted 13 February 2005 - 11:31 PM

Véi, explica melhor ae pq eu entendi mais ou menos, mas pra solucionar tua dúvida tem q entender 100%.

Proteus, pelo pouco q eu entendi ele nao quer q o valor seja 3 fixo, e sim dependendo de algum valor predefinido. Por exemplo, se o numero do cara no bd por 5, no select venha escolhido o 5, se for 3, venha escolhido 3 e assim por diante.

Eh isso mesmo fffilho?

Falow ae

FUI
OUVINDO AC/DC - HIGH VOLTAGE

0

#4 User is offline   proteus_adi 

  • Group: Membros
  • Posts: 154
  • Joined: 07-April 04

Posted 14 February 2005 - 12:43 PM

ae!
foi um exemplo da sintaxe..
ora..
deduz-se que o campo vai variar de acordo com o que ele ja tem no banco de dados....
é só usar uma var..
0

#5 User is offline   fffilho 

  • Group: Membros
  • Posts: 6
  • Joined: 12-February 05

Posted 16 February 2005 - 12:04 AM

Vejam, a resposta do Proteus me foi satisfatória (obrigado), pois o que eu queria mesmo conhecer era o parâmetro SELECTED. Entretanto o Ianrapha quis ampliar a resposta que eu queria, pois terei de aprender por tentativa e erro, aliás algo que para um iniciante é bem demorado! Outra coisa, seguindo os modelos do livro de cf que estou usando, eu estava tentando fazer a rotina com a tag em html <select e não com a <cfselect. Com a tag em html também é possível usar o "selected"?

Bem, se quiserem complementar este tópico me informando como faço para jogar no selected o conteúdo atual do registro, através de um comando "<select query" ou "<cfselect query", é com vocês...
0

#6 User is offline   rbaialuna 

  • Group: Desafio Fireworks
  • Posts: 2938
  • Joined: 28-January 04

Posted 16 February 2005 - 12:41 AM

Humm...

Na tag html <select>, o selected é um pouco diferente.. ficaria:

<select>
<option value="3" selected>Valor...</option>
</select>

Agora, para fazer que o cfselected tenha o valor definido, você faz pela variável.. veja:

1 - Primeiro você faz a seleção do BD para pegar qual valor está selecionado...
QUOTE
<cfquery name="qValor" datasource="bancodedados">
SELECT campo
FROM banco
</cfquery>



2 - Faz o valor do banco ir para o select
QUOTE
<cfselect name="nome" selected="#qValor.campo#" visible="Yes" enabled="Yes" query="query">
</cfselect>


Ok???

Abraços!
0

#7 User is offline   fffilho 

  • Group: Membros
  • Posts: 6
  • Joined: 12-February 05

Posted 20 February 2005 - 02:15 AM

thumbup.gif Após algumas tentativas, consegui! tanto com a tag do cf como no html. Obrigado!
0

#8 User is offline   ..:: ELVIS ::.. 

  • Group: Membros
  • Posts: 116
  • Joined: 16-February 05

Posted 21 October 2005 - 11:28 PM

QUOTE(rbaialuna @ 16/2/2005 00:02:27)
Humm...

Na tag html <select>, o selected é um pouco diferente.. ficaria:

<select>
<option value="3" selected>Valor...</option>
</select>

Agora, para fazer que o cfselected tenha o valor definido, você faz pela variável.. veja:

1 - Primeiro você faz a seleção do BD para pegar qual valor está selecionado...
QUOTE
<cfquery name="qValor" datasource="bancodedados">
SELECT campo
FROM banco
</cfquery>



2 - Faz o valor do banco ir para o select
QUOTE
<cfselect name="nome" selected="#qValor.campo#" visible="Yes" enabled="Yes" query="query">
</cfselect>


Ok???

Abraços!
View Post





Ué! Comigo não está funcionando!
Quero listar os valores dos campos, exceto os repetidos e ainda, quero que esteja selecionado o valor do campo referente ao registro soliciado para alterar.

Ex:

campo carro:
honda
fiat
audi


campo cor:
verde
vermelho
verde


Quando eu exibir a página para alteração dos dados (no caso a cor), vai ter um cfselect, mas queria que ele listasse TODAS as cores (exceto as repetidas) e deixasse pré-selecionado a cor, conforme o CARRO escolhido para alterar a cor.
0

#9 User is offline   graffdesign 

  • Group: Membros
  • Posts: 277
  • Joined: 03-February 04

Posted 22 October 2005 - 01:17 AM

Veio pelo que entendi, vc tem em uma tabela um capo carro e outro cor.
Agora não entendi de onde vem cores repetidas ou o porque repetem-se as cores.

Vamos trampar em cima da lógica para um db para isso.

Digamos que eu tenho um tabela com os campos a seguir:

tblCarro
idCarro
idNomeCarro
idCorCarro


e tenho mais duas tabelas que vão preencher a tabela de carros veja:

tblNomeCarro
idNomeCarro
nomeCarro


tblCorCarro
idCor
idNomeCarro
nomeCor


Então dessa forma, eu cadastro na tblCarros
um carro, cadastro o id do nome do carro e o id da cor do carro que pertence ao mesmo nome do carro, que vem de outras tabelas que contem todos os carros e todas as cores

E na tabela tblCorCarro eu cadastro o id da cor, o id do nome do carro e a cor que pertence aquele carro, vou cadastrando todas as cores que aquele carro pode ter.

E na hora de exibir eu faço a query assim:

ColdFusion
<cfquery name="qCarros" datasource="dsn">
select
tblCarro.idCarro ,tblCarro.idNomeCarro ,tblCarro.idCorCarro
,tblNomeCarro.idNomeCarro ,tblNomeCarro.nomeCarro
,tblCorCarro.idCor ,tblCorCarro.idNomeCarro ,tblCorCarro.nomeCor
from
tblCarro
,tblNomeCarro
,tblCorCarro
where
tblCarro.idCarro = #form.idCarro# and tblNomeCarro.idNomeCarro = tblCarro.idNomeCarro and tblCorCarro.idNomeCarro = tblCarro.idNomeCarro
</cfquery>


dessa forma quando você pedir pra exibir o carro, só será exibida as cores que aquele carro tem cadastrada, facilitando a maneira que você vai lidar com os dados.

Quanto ao formulário é só seguir a lógica que foi dada acima, pedindo pro formulário selecionar id da cor referente ao campo id da cor que o carro selecionado tem e iniciar selecionado o id do carro que está sendo retornado na query...

desculpe se não te fiz entender muito facil, mas é meio complicado mesmo, mas nada que seja impossivel de se fazer!!!

Abraços;
0

#10 User is offline   ..:: ELVIS ::.. 

  • Group: Membros
  • Posts: 116
  • Joined: 16-February 05

Posted 22 October 2005 - 01:26 AM

QUOTE(graffdesign @ 22/10/2005 01:10:15)
Veio pelo que entendi, vc tem em uma tabela um capo carro e outro cor.
Agora não entendi de onde vem cores repetidas ou o porque......


Aaaii! blink.gif

Cara, muito obrigado pela explicação, mas eu queria algo mais simples. Confesso que não entendi, mas vamos ver se eu explico melhor:

As cores se repetem, prq podem existir carros de mesma cor, porém são carros diferentes.
Nesse caso, está tudo numa tabela só (campos CARRO e COR).
O que eu queria, é poder exibir num select, todas as cores listadas no campo COR, caso seja necessário eu alterar a cor do carro (por exemplo, se eu cadastrar errado a cor)

Mas quando for exibido o select, quero que ele deixe pré selecionado o valor (cor) atual.

Acho que agora consegui explicar bem... Valeu! Se puderam ajudar.. thumbup.gif
0

#11 User is offline   graffdesign 

  • Group: Membros
  • Posts: 277
  • Joined: 03-February 04

Posted 22 October 2005 - 01:51 AM

Ok vamos fazer assim:

a primeira consulta que retornará oque vc já tinha cadastrado:
ColdFusion
<cfquery name="qCarros" datasource="dsn">
select
tblCarro.idCarro ,tblCarro.idNomeCarro ,tblCarro.idCorCarro
,tblNomeCarro.idNomeCarro ,tblNomeCarro.nomeCarro
,tblCorCarro.idCor ,tblCorCarro.idNomeCarro ,tblCorCarro.nomeCor
from
tblCarro
,tblNomeCarro
,tblCorCarro
where
tblCarro.idCarro = #form.idCarro# and tblNomeCarro.idNomeCarro = tblCarro.idNomeCarro and tblCorCarro.idNomeCarro = tblCarro.idNomeCarro
</cfquery>


a segunda fica assim:

ColdFusion
<cfquery name="qListaCarros" datasource="dsn">
select
idNomeCarro ,nomeCarro
from
tblNomeCarro
</cfquery>


e outra caso você altere o carro no select:

ColdFusion
<cfquery name="qCores" datasource="dsn">
select
idCor ,idNomeCarro ,nomeCor
from
tblCorCarro
group by
nomeCor
</cfquery>


e no cfselect fazemos assim:

ColdFusion
<cfselect name="Carros" selected="#qCarros.tblCarros.idCarro#" visible="Yes" enabled="Yes">
<cfoutput query="qCarros">
<option value="#qCarros.tblCarros.idCarro#">#qCarros.tblNomeCarros.nomeCarro#</option>
</cfoutput>
<cfoutput query="qListaCarros">
<cfif qListaCarros.idCarro neq qCarros.tblCarros.idCarro>
<option value="#qListaCarros.idCarro#">#qListaCarros.nomeCarro#</option>
</cfif>
</cfoutput>
</cfselect>


e o de cores:
ColdFusion
<cfselect name="cores" selected="#qCarros.tblCorCarro.idCor#" visible="Yes" enabled="Yes">
<cfoutput query="qCarros">
<option value="#qCarros.tblCorCarro.idCor#">#qCarros.tblCorCarro.nomeCor#</option>
</cfoutput>
<cfoutput query="qCores">
<cfif qCores.idCor neq qCarros,tblCorCarro.idCor>
<option value="#qCores.idCor#">#qCores.nomeCor#</option>
</cfif>
</cfoutput>
</cfselect>


Cara ta ai uma boa lógica de como lidar com essa situação, mas para isso tu vai ter que dar uma reestruturada no seu banco, ou fazer de outra forma aproveitando seu db, mas ai ficará um trabalho bem porco.

Pensa noque você quer e manda bala garoto!!!
0

#12 User is offline   ..:: ELVIS ::.. 

  • Group: Membros
  • Posts: 116
  • Joined: 16-February 05

Posted 22 October 2005 - 02:04 AM

QUOTE(graffdesign @ 22/10/2005 01:10:50)
Ok vamos fazer assim:

....


Cara! Valeu! Funcionou aqui! thumbsup.gif
Estava me faltando uma lógica.

Como eu tenho tudo em uma única tabela, apenas fiz outra query comparando o mesmos campos.

Mas funcionou!

Valeu Paulo! Valeu Pedro! thumbup.gif
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)