Ir para conteúdo
Fórum Script Brasil
  • 0

Filtro Dinâmico


Turbo

Pergunta

Pessoal,

seguinte... estou tentado fazer uma tela de cadastro,e quando chega a parte de preencher o endereço, possui as informações de rua e tudo mais, porém, para evitar que o usuario erre ao digitar o pais, estado e cidade...

Criei 3 combo com as opções, porém queria fazer o filtro delas de forma dinamica... assim que o usuario seleciona o pais, habilita a combo dos estados e a query é rodada com o parametro passado, o mesmo serve para as cidades.

Explo.:

O usuario selecionou o pais = Brasil, as opcoes de estados são filtradas e listadas. Então, ele selecionou estado = RJ e as opcoes de cidades apenas pertencentes ao Rio serão exibidas...

Alguma luz de como fazer esse filtro dinamico de forma transparente para o usuario ?!

Vlw pela força !!!!

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

ate poderia... mas a plataforma aqui já está toda em asp, e ninguém se mostrou interessado em instalar um novo framework...

e sou novato em asp.. antes eu só programa com interface visual... delphi, Vb... essas coisas.. que eram menos complexas com relação a esse tópico...

eu tentei fazer alguma coisa usando Js... e tudo mais.. mas ate agora não obtive muito sucesso.

A não ser que a minha variavel que utlizo pra fazer a query esta: undefined

heheheh

Vlw...

Link para o comentário
Compartilhar em outros sites

  • 0

já chegeui a fazer isso antes, não tem necessidade de ajax não.

mas esses dados que você poe no combo vem do banco?? se for, você cria a funcao javascript no load da pagina com os dados do banco.

por exemplo, pra você selecionar os estados e mudar a cidade, a funcao ficaria assim:

<script language="javascript" type="text/javascript">
<!--
    function MudaCidade(indice)
    {
        var i;
        
        for (i = 1; i < document.getElementById('Estado_drpCidade').length; i++)
        {
            document.getElementById('Estado_drpCidade').options[i] = null;
        }
        if (indice == 'RJ')
        {
            document.getElementById('Esquerda_drpCidade').options[1] = new Option('Rio de Janeiro');
        }
        if (indice == 'SP')
        {
            document.getElementById('Esquerda_drpCidade').options[1] = new Option('Bauru');
            document.getElementById('Esquerda_drpCidade').options[2] = new Option('são Paulo');
        }

    }
//-->
</script>[/code] e os selects seriam esses:
[code]<select name="Esquerda:drpEstado" id="Esquerda_drpEstado" OnChange="java script: MudaCidade(this.value);" >
    <option value="">Estado</option>
    <option value="RJ">RJ</option>
    <option value="SP">SP</option>
</select>
<select name="Esquerda:drpCidade" id="Esquerda_drpCidade">
    <option value="">Cidade</option>
</select>

ou seja, é so você acrescentar as linhas caso você tenha mais dados. se eles vierem do banco é so montar a funcao usando asp.

Link para o comentário
Compartilhar em outros sites

  • 0

cara...maravilha... tá dando certo...

porém... como eu faço pra colocar os values para cada opção que eu vou inserir...

Ah... todos os dados... pais, estado e cidade são retornados do banco... atraves das queries que dependem da escolha da opcao do usuario... :D

vlw !!!!

==================

andreia_sp...

eu não conheco muito bem essa parte, desculpas se falei alguma besteira... [:D]

a dica que o kuori me deu, está funcionando... mas falta os values, como eu já disse acima...

Link para o comentário
Compartilhar em outros sites

  • 0

então, a funcao ficaria assim:

<script language="javascript" type="text/javascript">
<!--
    function MudaCidade(indice)
    {
        var i;
        
        for (i = 1; i < document.getElementById('Estado_drpCidade').length; i++)
        {
            document.getElementById('Estado_drpCidade').options[i] = null;
        }
        <% sql = "Select * from Estados"
        Set rs = cn.Execute(sql)

        Do While Not rs.EOF %>
        if (indice == '<% = rs("Estado") %>');
        {
            <%
                sql = "Select * from Cidades Where Estados = '" + rs("Estado") + "'"
                Set rsx = cn.Execute(sql)

                j = 1
                Do While Not rs.EOF %>
                document.getElementById('Esquerda_drpCidade').options[<% = j %>] = new Option('<% =  rsx("Cidade") %>');
                <% j = j + 1
                 rsx.MoveNext
                 Loop%>
        }
        <% rs.MoveNext
        Loop %>
    }
//-->
</script>[/code]

ai é so você preencher o select de estado com todos os estados do banco.

Link para o comentário
Compartilhar em outros sites

  • 0

Eu to fazendo o seguinte....

function mudaEstado()
{
  <% 
  query = " select distinct descricao_estado, estado from estados ....."


  set rsx = DataConn.Execute(query)
   j = 1
   Do While Not rsx.EOF %>
     document.getElementById('estado').options[<% = j %>] = new Option('<% =  rsx("estado") %>');
     <% j = j + 1
   rsx.MoveNext
   Loop%>   

E ele dá erro na linha do set...

Error Type:

Microsoft VBScript runtime (0x800A01A8)

Object required: ''

/sites/informatica/template/teste1.asp, line 24

... vlw....

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...