Sou uma pessoa B e não sei como usar vídeos para resolver o problema, então tenho que usar minhas palavras confusas para escrever.
Em circunstâncias normais, esta situação é útil para diretórios secundários. Existem muitos tipos de JS circulando em sites agora, mas nada mais são do que aqueles códigos JS que confundem pessoas como eu. . Tudo de uma vez para... array de tudo de uma vez.
Sem mais delongas, vamos direto ao ponto.
Primeiro você tem que criar uma tabela. Claro, se o diretório já tiver sido criado na sua tabela, esta etapa pode ser omitida. Mas há uma coisa para lembrar: esta tabela é a base do meu exemplo (não sei se está correto).
Como a tabela que utilizo é ACCESS, não irei entrar na criação da tabela, apenas listarei os nomes dos campos correspondentes dessas duas tabelas (nome do banco de dados: db.mdb):
Nome da tabela: type_tree - Campo da classe pai: type_id (número automático) type_name (nome da categoria)
Nome da tabela: s_type - Campo da subclasse: id (número automático) s_name (nome da subcategoria) type_id (ID da classe pai) - e Correspondente à classe pai tabela,
a conexão com o banco de dados agora está estabelecida:
Dim conn, connStrSet conn = server.CreateObject("ADODB.Connection")connStr = "Provider = Microsoft.jet.oledb.4.0;"connStr = connStr & "Data Source = " & server .mappath("db.mdb")Conn.Open connStr
Não deve haver necessidade de explicar os códigos acima, pois todos são códigos comumente usados. .
Agora vamos à ação real :)
Os menus de contexto secundários geralmente são feitos com menus suspensos, e não sou exceção aqui, e também uso menus suspensos para criá-los.
Mas há uma coisa que é diferente aqui.
Utiliza-se um menu de salto. Isto é muito importante. O sucesso depende inteiramente de o menu ser usado corretamente.
Abaixo está o código para este menu de salto!
<select name="first" onChange="MM_jumpMenu('parent',this,0)">
<%
sql = "selecione [type_id],[type_name] de [type_tree]"
set rs = conn.execute(sql)'Obtém o ID e o nome da classe pai
se rs.eof ou rs.bof então
response.write "<option>-----</option>" 'Se não houver registro, exibe -----
outro
while not(rs.eof ou rs.bof) 'Se houver um registro, liste o nome do pai para formar um menu suspenso.
resposta.write ("<valor da opção='?sec=" & rs(0) & "'")
se cstr(rs(0)) = request.querystring("sec") então
resposta.write "selecionado"
terminar se
resposta.write (">" & rs(1) & "</option>")
rs.movnext
vamos
rs.movefirst 'Move o cursor para o primeiro item para uso posterior.
terminar se
%>
</selecionar>
Ah, a propósito, tem outro trecho de código que esqueci de postar. Essa é a chave para pular para o menu.
Adicionar para adicionar:
<linguagem script="JavaScript" type="text/JavaScript">
<!--
função MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restaurar) selObj.selectedIndex=0;
}
//-->
</script>
O código acima está colado em <head> e é gerado pelo DW. Não entendo muito bem o que significa, então não vou comentar :D.
Agora é a parte secundária do menu. Este não é um menu de salto, é apenas uma lista, então a única diferença entre o código e o menu de salto acima é a função onchange.
A seguir está o código deste menu. Como o loop e o julgamento são mais complicados do que os anteriores, todos devem lê-lo com clareza.
<selecione nome="segundo">
<%se rs.eof ou rs.bof então
resposta.write ("<option>--------</option>")
outro
if request.querystring("sec") = "" then 'Obtém o valor de segundos após o salto
temp=rs(0) Se estiver vazio, defina o valor de temp para o valor do primeiro registro
outro
temp = request.querystring("sec") 'Caso contrário será o valor recebido
terminar se
subsql = "selecione [s_name] de [s_type] onde type_id='"&temp&"'"
set subrs = conn.execute(subsql) 'Lista todos os registros cujos dados são temporários
se subrs.eof ou subrs.bof então
resposta.write ("<option>-----</option>")
'Se não houver nenhum registro, exiba "-----" nesta lista
outro
while not(subrs.eof ou subrs.bof)' Caso contrário, use um loop para listar todos os registros que atendem às condições.
resposta.write ("<option value=" & subrs(0) & ">" & subrs(0) & "</option>")
subrs.movnext
vamos
terminar se
end if
'Fechar todos os conjuntos de registros
subrs.fechar
definir subrs = nada
rs.fechar
setrs = nada
conexão.fechar
definir conn = nada
%>
</select>
Até agora, o processo de criação deste menu secundário foi concluído. É muito simples como expliquei.
Se você não entende, por favor, pare de falar. De qualquer forma, não sei mais o que dizer.
Os especialistas estão dispostos a aconselhá-lo.