Ir para conteúdo

POWERED BY:

Arquivado

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

marcelocardoso

Select list selecionado

Recommended Posts

BELEZA PESSOAL!

 

Alguns dias me passaram este código abaixo para trazer no SELECT o valor SELECIONADO, mas não estou conseguindo....Pois não entendi muito bem.

 

Lá vai meu código:

<%SET Categoria = ObjCX.Execute("SELECT * FROM Produtos ORDER BY ID")%><select name="campo_categoria" size="1" id="campo_categoria"><option value="#">Selecione...</option><% DO WHILE NOT Categoria.EOFIF Comparar = Categoria("CategoriaNome") THEN%><option value="<%=Categoria("CategoriaNome")%>" selected><%=Categoria("CategoriaNome")%></option><% ELSE%><option value="<%=Categoria("ID")%>"><%=Categoria("CategoriaNome")%></option><%END IFCategoria.MoveNext		  LOOP%>
Explicação:

Tenho uma página para EDITAR produtos ok.

( bom pela lógica o produto já existe no banco de dados, com todos os dados preenchidos ok )

E agora na página editar.asp, trago nos INPUTS através do RECORDSET os valores pertinentes a um ID (autoNumeração) que está no banco de cada produto ok. (até ai tudo bem)

 

Mas ao selecionar por exemplo o produto de ID = 1

Ele me seleciona os campos do BD: ProdutosNome, ProdutosCategoria, ProdutosFabricante e ProdutosImagem

 

E me mostra na tela, só que o problema, o nome das categorias dos produtos estão em OUTRA TABELA, chamada de CATEGORIASPRODUTOS, ok

 

Com os campos de:

ID - AutoNumeração

Categoria - Numero

NomeCategoria - Texto

 

 

Ou seja: para eu editar o produto eu seleciono através da TABELA PRODUTOS, ok

Mas daí teriamos que comparar o campo ProdutosCategoria da tabela Produtos, pela tabela CategoriaProdutos do campo NomeCategoria, e comparar se são iguais e trazer o valor selecionado no SELECTBOX....ok

 

 

Acho que é isso:

Podem me ajudar com exemplo???/

Obrigado e que DEUS abençoe a todos, pois não sei como fazer....

Compartilhar este post


Link para o post
Compartilhar em outros sites

PESSOAL!

 

Deixa eu me explicar melhor, pois preciso realmente da ajuda de vocês...

Tenho no banco de dados, 2 TABELAS. ok

ONDE:

1) A 1 se chama de Categorias

No banco fica assim:

 

ID | CategoriaNome

_________________

1 | Café

2 | Ximarrão

3 | Flores

4 | Etc....

 

 

2) A 2 se chama de Produtos

No banco fica assim:

ID | ProdutosNome | ProdutosCategoria | ProdutosImagem

1 | Coffe | 1 | img1.gif

2 | Tob | 1 | img2.gif

3 | Azaleia | 3 | img3.gif

4 | Margarida | 3 | img4.gif

 

Como dá para ver a tabela Produtos, está com os números correspondentes a cada categoria, da tabela Categorias ok, sendo que podemos ver na tabela produtos, existem 2 vezes 1, 1 e 3, 3 representando as categorias CAFÉ e FLORES da tabela CATEGORIAS. ok

 

Bom!

Ooque eu estou querendo fazer é simplesmente uma página de update, onde busco algum produto e ele busca os dados já gravados do produto que estão no banco e me traz na tela para que eu possa atualizar algum dado, ok.

 

E oque eu precisaria fazer nesta página de update de produtos, era fazer a parte da COMBOBOX que pegaria o NÚMERO do campo ProdutosCategoria, e ver se é igual ao número correspondente que está no ID da tabela CATEGORIAS e trazer selecionado o nome da categoria correspondente ao número na combobox, para que quando eu for atualizar os dados daquele produto, mesmo que ele eu não o troque de categoria, ele fique na mesma que ele já estava. ok

 

Deu para entender melhor.

Aguardo ajuda dos colegas, pois não entendi muito bem como fazer isso, apesar de achar que deve ser fácil, só deve saber a lógica da questão, coisa que eu ainda não sei....

 

 

Por isso peço a ajuda dos colegas com o código pronto, pois não SEI FAZER.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce faz um select no produto tal aravez ID com isso voce terá a ProdutosCategoria do produtodepois voce seleciona todos os registro da tabela Categorias e enquanto listar voce poe um IF dentro de cada option perguntando se o ID da categoria é igual a ProdutosCategoria do produto se for poe o selected

Compartilhar este post


Link para o post
Compartilhar em outros sites

é mais ou menos assim....

 

obs: tem que mudar a conexão para a sua...

 

 

<% ' esse script erá pegar os dados da pagina anterior e vai jogar o valor da categoria dentro do select com o valor correspondente%><% 'conexao com o bancoSet Database =  Server.CreateObject("ADODB.Connection")Database.Open xDb_Conn_Str'selecionar o registro atual, onde p id é igual a pagina anteriorsqlcategoria_atual =  "SELECT * FROM  Categorias where id = " & idSet RScategoria_atual = Database.execute(sqlcategoria_atual)%>			  <select name="id" class="scroll" >			  				<option value="<%=RScategoria_atual("id")%>" selected><%=RScategoria_atual("CategoriaNome")%></option>				<% Database.closeSet Database = Nothing %><%'conexao com o banco Set Database =  Server.CreateObject("ADODB.Connection")Database.Open xDb_Conn_Strsqlcategoria =  "SELECT * FROM Categorias ORDER BY CategoriaNome ASC"Set RSqlcategoria = Database.execute(sqlcategoria)%>	 	 	 <% do while not RSsqlcategoria.EOF %>	 				<option value="<%=RSqlcategoria("id")%>"><%=RSsqlcategoria("CategoriaNome")%></option>				<% response.write "</OPTION> " 								RSqlcategoria.MoveNext 								loop 								response.write "</SELECT>" %>			  </select> 			  <% Database.close Set Database = Nothing %><%'fim do script%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

HEI LISA!

 

Eu como ainda tropeço bastante no ASP, pois estou aos poucos aprendendo um pouquinho aqui, alí....ok

Tentei adaptar ao teu código, mas consegui chegar neste abaixo... não sei tá realmente certo.... Mas está funcionando com um problema eu acho, dê uma olhada.

 

<%'Resgatamos e guardamos a variável CodigoDoProduto = Request.QueryString("codproduto")   'Criando as conexões com o banco de dados e os objectos necessários SQL = "SELECT * FROM Produtos WHERE ID = "& CodigoDoProduto SET ObjRS = Server.CreateObject("ADODB.RECORDSET")	 ObjRS.Open SQL, ObjCX, 3	 'PRIMEIRO:'Iremos colocar o valor que está gravado no produto, referente a categoria em uma variavel ProdutoID = ObjRS("ProdutosCategoria")'SEGUNDO:'Iremos fazer a seleção na tabela OrcamentoCategorias e comparar com a variavel ProdutoID SET Categoria = ObjCX.Execute("SELECT * FROM Categorias WHERE CategoriaNome = '" & ProdutoID & "'")%><select name="campo_categoria" size="1" id="campo_categoria"><option value="<%=Categoria("CategoriaNome")%>" selected><%=Categoria("CategoriaNome")%></option><%'Criamos o Objeto para Conectar ao RecordSet Set ObjRecordSet = Server.CreateObject("ADODB.RecordSet")		  'Criamos a instrução SQL para Seleciormos os dados do Banco de Dados através do RecordSet setado acima SQL =  "SELECT ID, CategoriaNome FROM Categorias ORDER BY ID ASC"'Executamos a declaração da SQL desejada, pois ela deverá retornar toda a informação pretendida para dentro da ComboBoxObjRecordSet.Open SQL, ObjCX DO WHILE NOT ObjRecordSet.EOF%><option value="<%=ObjRecordSet("CategoriaNome")%>"><%=ObjRecordSet("CategoriaNome")%></option><% ObjRecordSet.MoveNext		  LOOP%><option value="<%=Categoria("CategoriaNome")%>"><%=Categoria("CategoriaNome")%></option></select>
Ela tem um problema, pois ele até me traz a categoria que está no banco referente ao produto que está cadastrado, mas ele me repete o nome da categoria no SELECT, pois acho que não deveria ser assim...

 

Veja se consegue me ajudar arrumar este código, ok

Pois funcionando ele está, mas devo ter errado alguma coisa na programação do código, pois está com este problema.

 

 

Aguardo seu retorno LISA.

Um Forte Abraço.

Obrigado

 

 

Deus Abençoe;

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.