Jump to content
Fórum Script Brasil
  • 0

Filtro Dinâmico


Turbo
 Share

Question

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 to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.8k
    • Total Posts
      648.7k
×
×
  • Create New...