|
|
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Parceiros - CSS para Web Design - S.O.S Designers - Slackware-Brasil - Crie seu Web site - Oficina da Net - Codigo Fonte.net |
Selects dependentes com ASP e banco de dadosSistema para que as opções de um select se vinculem ao que foi selecionado em outro select, mantendo todas as opções em um banco de dados. Este é um sistema de "selects dependentes" (ou seja, que interagem um com outro),
tomando de uma só vez os dados desde uma banco de dados Access.
Só será necessário 1 módulo ASP (selecs_dependentes.asp) e o banco de dados correspondente (ssdd.mdb).
Neste exemplo, se trabalhará com dois selects: - Um de países - Outro de províncias ou estados Banco de dados ssdd.mdb O banco de dados deverá conter duas tabelas relacionadas entre si.
Com uma relação entre tabelas como esta: ![]() selects_dependentes.asp A página ASP é bastante simples de entender. Trata-se de um script para construir os dois campos select a partir dos valores do banco de dados. A primeira vez que carregar a página se mostrará unicamente o primeiro campo select com os valores que extrai da tabela de países. Incluímos ao campo select o evento Javascript onchange para que, no momento que mude a opção selecionada, se carregue a página passando por parâmetro o identificador do país selecionado. A segunda vez que carregar a página -porque foi mudado o valor do primeiro select- receberá pela URL o identificador do país selecionado. Então mostra o segundo select com as opções relacionadas com o país que recebe por parâmetro, ou seja, se foi selecionado o país Argentina, se carregará unicamente as províncias desse país. O código do exemplo ficaria desta maneira: <form name=formulario> PAÍS: <select name=idPais onChange="location.href('selects_dependentes.asp?idPais=' + formulario.idPais.options[formulario.idPais.selectedIndex].value)"> <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("ssdd.mdb")) SQL_pais="select * from paises order by pais asc" set RS_pais=createobject("ADODB.Recordset") RS_pais.open SQL_pais,conn do while not RS_pais.eof pais = RS_pais("pais") idPais = RS_pais("idPais") p = request.querystring("pais") if p <> "" then if p = pais then response.write "<option value="&idPais&"&pais="&pais&" selected>"&pais&"</option>" elseif p <> pais then response.write "<option value="&idPais&"&pais="&pais&">"&pais&"</option>" end if else response.write "<option value="&idPais&"&pais="&pais&">"&pais&"</option>" end if RS_pais.movenext loop RS_pais.close %> </select> <% if request.querystring("idPais") <> "" then %> PROVINCIA: <select name=localizacao> <% SQL_prov="select * from provincias where pais="&request.querystring("idPais")&" order by provincia asc" set RS_prov=createobject("ADODB.Recordset") RS_prov.open SQL_prov,conn do while not RS_prov.eof pais = request.querystring("pais") provincia = RS_prov("provincia") %> <option value="<%=provincia%>, <%=pais%>"><%=provincia%></option> <% RS_prov.movenext loop RS_prov.close %> </select><% end if %></form>
Autoria e outras referências sobre este artigo Dentro deste artigo: + 1 manual relacionado + 2 Categorias relacionadas + 2 Comentários sem rever
Manuais relacionados com este artigo Dentro de Workshop de ASP Anterior: Como fazer zonas aleatórias em asp Categorias relacionadas Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo: + Entrar em ASP+ Entrar em Scripts em ASP Comentário sem rever
|
| Sobre nós | Copyright | Anuncie | Entrar em contato | <criarweb> |