Seguinte tenho 4 selects dinamico em uma pagina os 4 funcionam, o unico problema é que, quando escolho o primeiro select, o segundo muda automaticamente, perfeito, quando escolho o segundo select o terceiro aparece em branco ou mesmo quando o segundo select é preenchido automaticamente, o terceiro continua em branco... a solução tem que ir até a opção de baixo no segundo select muda-la e volta pro primeiro, para aparecer as opções no terceiro, funciona, mas imagina um cliente leigo fazendo toda essa gambiarra...
Se alguém souber como eu arrumo isso... por que não manjo NADA de JS...
Primeiro Código que Muda o segundo select conforma a escolha do primeiro
Function EscreveFuncaoJavaScript ( Conexao )
Response.Write "<script language=""JavaScript"">" & vbcrlf
Response.Write "function atualizacategoria (form) {" & vbcrlf
Response.Write "switch (form.vcategorias.options[form.vcategorias.selectedIndex].value) {" & vbcrlf
SQL = "SELECT * FROM categorias ORDER BY categoria ASC"
SET RS = Server.CreateObject("AdoDB.RecordSet")
RS.Open SQL,Conexao
While NOT RS.EOF
Response.Write "case '" & rs("categoria") & "':" & vbcrlf
Response.Write "form.sub2.length=0;" & vbcrlf
SQL = "SELECT * FROM sub_categorias WHERE categoria='" & rs("categoria") & "'"
Set RS2 = Server.CreateObject("AdoDB.RecordSet")
RS2.Open SQL,Conexao
i = 0
While NOT RS2.EoF
Response.Write "form.sub2.options[" & i & "] = new Option('" & RS2("sub_categoria") & "','" & RS2("sub_categoria") & "');" & vbcrlf
i=i+1
RS2.MoveNext
Wend
rs2.close
set rs2 = nothing
Response.Write "break;" & vbcrlf
RS.MoveNext
Wend
rs.close
set rs = nothing
Response.Write "}}" & vbcrlf & "</script>" & vbcrlf
End Function
Segundo codigo, que muda o terceiro select depnedendo da escolha do segundo select
Function EscreveFuncaoJavaScript2 ( Conexao )
Response.Write "<script language=""JavaScript"">" & vbcrlf
Response.Write "function atualizacategoria2 (form) {" & vbcrlf
Response.Write "switch (form.sub2.options[form.sub2.selectedIndex].value) {" & vbcrlf
SQL = "SELECT * FROM sub_categorias ORDER BY sub_categoria ASC"
SET RS = Server.CreateObject("AdoDB.RecordSet")
RS.Open SQL,Conexao
While NOT RS.EOF
Response.Write "case '" & rs("sub_categoria") & "':" & vbcrlf
Response.Write "form.sub3.length=0;" & vbcrlf
SQL = "SELECT * FROM sub_categorias_2 WHERE sub_categoria='" & rs("sub_categoria") & "'"
Set RS2 = Server.CreateObject("AdoDB.RecordSet")
RS2.Open SQL,Conexao
i = 0
While NOT RS2.EoF
Response.Write "form.sub3.options[" & i & "] = new Option('" & RS2("sub_categoria_2") & "','" & RS2("sub_categoria_2") & "');" & vbcrlf
i=i+1
RS2.MoveNext
Wend
rs2.close
set rs2 = nothing
Response.Write "break;" & vbcrlf
RS.MoveNext
Wend
rs.close
set rs = nothing
Response.Write "}}" & vbcrlf & "</script>" & vbcrlf
End Function
Resumindo, no codigo acima precisava que automaticamente ele já mostra-se as opções quando o segundo select já fosse preenchido automaticamente, o que não está acontecendo...
Pergunta
DackAle
E ae galera =)
Seguinte tenho 4 selects dinamico em uma pagina os 4 funcionam, o unico problema é que, quando escolho o primeiro select, o segundo muda automaticamente, perfeito, quando escolho o segundo select o terceiro aparece em branco ou mesmo quando o segundo select é preenchido automaticamente, o terceiro continua em branco... a solução tem que ir até a opção de baixo no segundo select muda-la e volta pro primeiro, para aparecer as opções no terceiro, funciona, mas imagina um cliente leigo fazendo toda essa gambiarra...
Se alguém souber como eu arrumo isso... por que não manjo NADA de JS...
Primeiro Código que Muda o segundo select conforma a escolha do primeiro
Function EscreveFuncaoJavaScript ( Conexao ) Response.Write "<script language=""JavaScript"">" & vbcrlf Response.Write "function atualizacategoria (form) {" & vbcrlf Response.Write "switch (form.vcategorias.options[form.vcategorias.selectedIndex].value) {" & vbcrlf SQL = "SELECT * FROM categorias ORDER BY categoria ASC" SET RS = Server.CreateObject("AdoDB.RecordSet") RS.Open SQL,Conexao While NOT RS.EOF Response.Write "case '" & rs("categoria") & "':" & vbcrlf Response.Write "form.sub2.length=0;" & vbcrlf SQL = "SELECT * FROM sub_categorias WHERE categoria='" & rs("categoria") & "'" Set RS2 = Server.CreateObject("AdoDB.RecordSet") RS2.Open SQL,Conexao i = 0 While NOT RS2.EoF Response.Write "form.sub2.options[" & i & "] = new Option('" & RS2("sub_categoria") & "','" & RS2("sub_categoria") & "');" & vbcrlf i=i+1 RS2.MoveNext Wend rs2.close set rs2 = nothing Response.Write "break;" & vbcrlf RS.MoveNext Wend rs.close set rs = nothing Response.Write "}}" & vbcrlf & "</script>" & vbcrlf End FunctionSegundo codigo, que muda o terceiro select depnedendo da escolha do segundo selectFunction EscreveFuncaoJavaScript2 ( Conexao ) Response.Write "<script language=""JavaScript"">" & vbcrlf Response.Write "function atualizacategoria2 (form) {" & vbcrlf Response.Write "switch (form.sub2.options[form.sub2.selectedIndex].value) {" & vbcrlf SQL = "SELECT * FROM sub_categorias ORDER BY sub_categoria ASC" SET RS = Server.CreateObject("AdoDB.RecordSet") RS.Open SQL,Conexao While NOT RS.EOF Response.Write "case '" & rs("sub_categoria") & "':" & vbcrlf Response.Write "form.sub3.length=0;" & vbcrlf SQL = "SELECT * FROM sub_categorias_2 WHERE sub_categoria='" & rs("sub_categoria") & "'" Set RS2 = Server.CreateObject("AdoDB.RecordSet") RS2.Open SQL,Conexao i = 0 While NOT RS2.EoF Response.Write "form.sub3.options[" & i & "] = new Option('" & RS2("sub_categoria_2") & "','" & RS2("sub_categoria_2") & "');" & vbcrlf i=i+1 RS2.MoveNext Wend rs2.close set rs2 = nothing Response.Write "break;" & vbcrlf RS.MoveNext Wend rs.close set rs = nothing Response.Write "}}" & vbcrlf & "</script>" & vbcrlf End FunctionResumindo, no codigo acima precisava que automaticamente ele já mostra-se as opções quando o segundo select já fosse preenchido automaticamente, o que não está acontecendo...
Valeu galera =)
Abraçossss
Link para o comentário
Compartilhar em outros sites
3 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.