ViniciusJau Postado Janeiro 15, 2005 Denunciar Share Postado Janeiro 15, 2005 Se a pessoa seleciona em um campo menu de lista ( select ) o Estado .. os campos do outro menu Cidade se alteram.....alguém tem diéia de como eu posso fazer isso ??por exemplo:<body><p> <select name="Estado"> <option value="sao_paulo">SP</option> <option value="rio_de_janeiro">RJ</option> <option value="mato_grosso">MT</option> </select></p><p> <select name="Cidade"> </select></p>dai no campo cidade ele busca os valores no banco de dados... alguém tem algum exemplo ou sabe indicar algum tudo legal que fale sobre isso ??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Janeiro 15, 2005 Denunciar Share Postado Janeiro 15, 2005 Da pra fazer em ASP, da uma olhada nesse artigo que achei nos meus favoritos que fala sobre relacionamento de combos:Uso de 2 combos ligadas entre si Escrevo este artigo, pois sei que todos aqueles que estão a começar precisam de algo parecido com aquilo que aqui escrevo. A idéia é ter 2 Combo boxes, em que a segunda é carregada com dados consoante a escolha feita na primeira Combo. Normalmente a solução mais rápida seria o uso de Javascript, mas se tivermos muitos dados isso torna-se muito pesado, porque o uso desde Scripting obriga o carregamento prévio de tudo o que estiver em base de dados, enquanto com a solução em ASP (esta que vou explicar) os dados só são puxados por pedido, e assim a performance final, para grandes soluções fica a beneficiar. O que falha claro, é o fato de ter de ser feito um refresh á página por cada vez que é feita uma nova escolha na primeira combo, mas que julgo ser suportável, pelo menos para mim é.A base de dadosA base de dados que uso, é novamente em MS-Access, que serve como exemplo e julgo ser de mais fácil acesso, para quem programa nesta linguagem.Uso 2 tabelas, muito simples com os seguintes esquemas:Tabela Combo1:id_combo1 | AutoNumbernome_combo1 | TextTabela Combo2:id_combo2 | AutoNumberid_combo1 | Numbernome_combo2 | TextA segunda tabela como é 'filha' da primeira, cada linha de informação tem de ter a referência do 'pai' da tabela Combo1. e assim quando escolhemos a informação da Combo1, podemos ir á segunda buscar a informação referente com o id da primeira.Este único ficheiro para o efeito, tem então duas combo boxes, em que a segunda é 'enchida' com dados depois de escolhermos um dos campos da primeira. Claro que o programador pode usar a opção 'onchange' e fazer este passo automaticamente. Eu fiz assim porque julgo de mais fácil compreensão, e depois o programador pode fazer as alterações que julgue necessárias.Arquivo Combo.ASP:<%Sub Combo1()' função que trabalha com a combo inicial'vamos fazer a declaração de SQL para encher a ComboSQLStmt = "SELECT id_combo1, nome_combo1 FROM combo1"'Executamos a declaração na Base de Dadosrs.Open SQLStmt, conn, 2, 1'vamos construir o HMTL da primeira comboResponse.Write"<font face='Verdana,Arial' size='2'>"Response.Write"<b>combo inicial </b></font>"Response.Write"<SELECT name='combo1'>"'vamos percorrer o RecordSet referente ás cidadeswhile not rs.EOF'construímos cada cidade na comboResponse.Write"<OPTION "'se a escolha anterior for igual à do momento, deixamo-la escolhidaif CInt(Request.Form("combo1"))= rs(0) thenResponse.Write"selected "end ifResponse.Write"value='"&rs(0)&"'>"&rs(1)&"</OPTION>"rs.MoveNextwendResponse.Write"</SELECT><br><br><br>"Response.Write"<INPUT type='Submit' value='OK'><br><br><br>"rs.closeEnd SubSub Combo2()' aqui construímos a combo referente às freguesiasid_combo1 = Request.Form("combo1")'se não houver escolha na combo das cidades, é como termos 0if id_combo1 = "" thenid_combo1 = 0end if'vamos fazer a procura de freguesias referentes ao'id da cidade escolhidaSQLStmt = "SELECT id_combo2, nome_combo2 FROM combo2 "SQLStmt = SQLStmt & "WHERE id_combo1=" & id_combo1'executamos o recordsetrs.Open SQLStmt, conn, 2, 1'construímos a combo das freguesiasResponse.Write"<font face='Verdana,Arial' size='2'>"Response.Write<b>combo secundária </b></font>"Response.Write"<SELECT name='combo2'>"while not rs.EOFResponse.Write"<OPTION "'aqui também se controla se houve escolha antes,'para não perdermos a sua visualizaçãoif CInt(Request.Form("combo2"))= rs(0) thenResponse.Write"selected "end ifResponse.Write"value='"&rs(0)&"'>"&rs(1)&"</OPTION>"rs.MoveNextwendResponse.Write"</SELECT>"rs.close ' fechar o recordsetEnd Sub' criação de uma conexão DSNLessconn = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="conn = conn & Server.Mappath("combos.mdb") & ";"' inicialização do bjecto do recordsetSet rs = Server.CreateObject("ADODB.Recordset")' criação do formulário que vai suportar ambas as combosResponse.Write"<FORM name='form1' action='combos.asp'"Response.Write" method='POST'>"' vamos chamar a combo 1Call Combo1()' e vamos também chamar a combo 2Call Combo2()' finalizamos o formulário com a Tag para o efeitoResponse.Write"</FORM>"%>Boa programação!Autor: João Vieira - (developer@joaovieira.com) Mais acho que o ideal seria fazer em Javascript da uma olhada na sessão de JS que você certamente vai achar alguma coisa Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Janeiro 15, 2005 Autor Denunciar Share Postado Janeiro 15, 2005 ....mas se tivermos muitos dados isso torna-se muito pesadoem javascript eu consigo fazer.. mais o problema é esse.. muitos registros... heheeu queria pois na verdade é uma consulta utilizando banco de dados e menus acho que esse arqtigo ai vai me ajudar !!!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 felipefrancesco Postado Janeiro 15, 2005 Denunciar Share Postado Janeiro 15, 2005 Olha...postei uma solução no fórum de JavaScript, olha ai:http://scriptbrasil.com.br/forum/index.php...topic=38960&hl= Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Janeiro 17, 2005 Autor Denunciar Share Postado Janeiro 17, 2005 legal... java com asp ficou legal também.. hehe o ruim é que eu já fiz meu banco no acess heheh..tipo eu tentei usar esse codigo, executando local ele deu esse erro: Provider error '80004005' Erro não especificado /combo/combo.asp, line 47 a linha 47 é a que executa o recordsetrs.Open SQLStmt, conn, 2, 1mais aconteceu um negocio estranho, pois eu mandei pro servidor , ele ele ficou asim: http://www.apaejau.org.br/combo.asphehe estou dando uma mexida nesse aqui em js !! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Janeiro 17, 2005 Denunciar Share Postado Janeiro 17, 2005 esse erro não especificado aí, acontece na linha que executa o sql, né?posta o sql aí.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Janeiro 17, 2005 Autor Denunciar Share Postado Janeiro 17, 2005 esse erro não especificado aí, acontece na linha que executa o sql, né?posta o sql aí.. ixi viajei ... seria essa parte aqui ??<% Sub Combo1()' função que trabalha com a combo inicial 'vamos fazer a declaração de SQL para encher a Combo SQLStmt = "SELECT id_combo1, nome_combo1 FROM combo1" 'Executamos a declaração na Base de Dados rs.Open SQLStmt, conn, 2, 1mais porque que testando local ele deu um erro diferente de qunado eu rodo ele no servidor ?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Janeiro 17, 2005 Denunciar Share Postado Janeiro 17, 2005 Isso pode ser problemas na conexao ao banco.no caminho do bancopermissoescomponentesDepende muito..Só que, quando dá erro não especificado, não tem como saber o que é..Esse erro, sempre que eu tive, era problema na conexao.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Janeiro 17, 2005 Autor Denunciar Share Postado Janeiro 17, 2005 humm legal... hehevou rever minahs conexões aqui entaum !!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ViniciusJau
Se a pessoa seleciona em um campo menu de lista ( select ) o Estado .. os campos do outro menu Cidade se alteram.....
alguém tem diéia de como eu posso fazer isso ??
por exemplo:
dai no campo cidade ele busca os valores no banco de dados... alguém tem algum exemplo ou sabe indicar algum tudo legal que fale sobre isso ???
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
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.