Jump to content


Photo

Trocar Valor Do Segundo Select Conforme Selecionado No Primeiro


  • Faça o login para participar
2 replies to this topic

#1 kurt_rp

kurt_rp

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Masculino
  • Localidade:Rio Grande do Sul
  • Interesses:Programação web e designer.

Posted 08/04/2010, 15:12

Tenho o seguinte código...

<script type="text/javascript">
$('document').ready(function()
{
    $('select').change(function() {

    var primeiro = $('#primeiro_select').val();
    $('#segundo_select_a').hide();

                    if (primeiro == 2) {
                                $("select#segundo_select").html("<option selected value='0'>{$tipos[0]}</option>").show();
                    }else{
                                {foreach key=key item=item from=$tipos}
                                    $("select#segundo_select").append("<option value={$key}>{$item}</option>").show();
                                {/foreach}
                    }
        });
</script>

<select id="primeiro_select" name="primeiro_select">
   <option value="1">Teste1</option>
   <option value="2">Teste2</option>
   <option value="3">Teste3</option>
</select>


<select id="segundo_select_a" name="segundo_select_a" style="display:block;float:left;width:300px;">
   <option value="">Selecione primeiro acima</option>
</select>
<select id="segundo_select" name="segundo_select" style="display:none;float:left;width:300px;"></select>

Ele até está funcionando, problema é que ali no "$("select#segundo_select").append..." qdo a pessoa seleciona outro dado no primeiro select, ele retorna os dados de antes e soma com os novos, duplicando assim os valores.


Testei também com $("select#segundo_select").html, mas não rolou. Ele só me retorna 1 valor, como a variavel "$tipos" é um array de valores, preciso alguma outra forma que ele liste todos os dados que estiver nesse array.

Alguem sabe outra forma de mostrar os "actions" sem que eles fiquem duplicando?

Edição feita por: kurt_rp, 08/04/2010, 15:15.

|| PLUG CIDADE || - O portal turistico do vale do Rio Pardo
http://www.plugcidade.com.br

|| PLUG BALADA || - O portal de festas do vale do Rio Pardo
http://www.plugbalada.com.br

#2 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 08/04/2010, 15:53

Testa com

   $("select#segundo_select").html

Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#3 kurt_rp

kurt_rp

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Masculino
  • Localidade:Rio Grande do Sul
  • Interesses:Programação web e designer.

Posted 09/04/2010, 14:25

André obrigado pela tua atenção, mas eu já havia comentado acima que eu já testei dessa forma e não deu certo, pq com "html" ele só retorna 1 valor, e como eu tenho um array para listar ele vai listar só 1 e o resto não vai aparece.

Mas enfim, eu ja consegui solucionar.
Para aqueles que tiverem depois a mesma dificuldade que eu ai vai:
$("select#segundo_select").find('option').remove();

É só colocar esse comando antes de trazer os dados novamente pelo "foreach" assim ele ira limpar os dados anteriores e adicionar os novos.

Bele?!
Abraço pessoal!




-----------------------------------------------------------------------------

Pessoal, estou precisando agora fazer uma outra verificação dos dados e não tem como eu colocar aquele option.remove, pq senao eu nao vou conseguir pegar o valor do ultimo dado, pois sera removido todos os action que foram carregados pela primeira vez.

Alguem saberia outra forma de carregar os dados sem usar "append" e nem "html"?

Edição feita por: kurt_rp, 09/04/2010, 14:26.

|| PLUG CIDADE || - O portal turistico do vale do Rio Pardo
http://www.plugcidade.com.br

|| PLUG BALADA || - O portal de festas do vale do Rio Pardo
http://www.plugbalada.com.br




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq