Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Buthy

Filtrar busca através de campos SELECT

Recommended Posts

Famoso combos dependentes.. (cidade x estado)

 

exemplo com jQuery:

http://wbruno.com.br/blog/2009/10/06/combos-dependentes-ajax-jquery/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmm... não entendi direito...

 

No meu banco entao teria Categoria (id, nome), Marca (id, nome, nome_categoria), Modelo (id, nome, nome_marca)

correto?

 

No arquivo function.inc.php que voce está chamando os dados do banco?

Ou seria dentro do select mesmo?

 

Não tem algum exemplo pronto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui utilizando isso:

 

<script type="text/javascript">

       $(document).ready(function(){

      $("select[name=marcas], select[name=modelo]").hide();

      $("select[name=tipo]").change(function(){

        $("select[name=marcas]").fadeIn('slow');

           $("select[name=marcas]").html('<option value="0">Carregando...</option>');

           $.post("marcas.php", 
                 {tipo : $(this).val()
             },
                 function(valor){
                    $("select[name=marcas]").html(valor);
                 }
           )
        })

      $("select[name=marcas]").change(function(){
        $("select[name=modelo]").fadeIn('slow');
           $("select[name=modelo]").html('<option value="0">Carregando...</option>');

           $.post("modelos.php", 
                 {marca : $(this).val()
             },
                 function(valor){
                    $("select[name=modelo]").html(valor);
                 }
           )
        })


     })

</script>

 

<form action="" method="post">
  <select name="tipo">
      <option value="0">Selecione uma categoria</option>
       <?php
        $sql = "SELECT * FROM combo_tipo ORDER BY nome_tipo ASC";
        $qr = mysql_query($sql) or die(mysql_error());
        while($ln = mysql_fetch_assoc($qr)){
           echo '<option value="'.$ln['nome_tipo'].'">'.$ln['nome_tipo'].'</option>';
        }
     ?>

   </select>

   <select name="marcas">
      <option value="0" disabled="disabled">Escolha a marca</option>
   </select>

   <select name="modelo">
      <option value="0" disabled="disabled">Escolha o modelo</option>
   </select>
</form>

 

marcas.php

<?php

$tipo = $_POST['tipo'];

$sql = "SELECT * FROM combo_marca WHERE tipo_marca = '$tipo' ORDER BY nome_marca ASC";
$qr = mysql_query($sql) or die(mysql_error());

if(mysql_num_rows($qr) == 0){
  echo  '<option value="0">Não há marcas cadastradas para essa categoria</option>';

}else{
  while($ln = mysql_fetch_assoc($qr)){
     echo '<option value="'.$ln['nome_marca'].'">'.$ln['nome_marca'].'</option>';
  }
}

?>

 

modelos.php

<?php

$marca = $_POST['marca'];
$tipo = $_POST['tipo'];

$sql = "SELECT * FROM combo_veiculos WHERE marca_veiculo = '$marca' AND tipo_veiculo = '$tipo' ORDER BY modelo_veiculo ASC";
$qr = mysql_query($sql) or die(mysql_error());

if(mysql_num_rows($qr) == 0){
  echo  '<option value="0">Não há veículos cadastrados para essa marca</option>';

}else{
  while($ln = mysql_fetch_assoc($qr)){
     echo '<option value="'.$ln['id_veiculo'].'">'.$ln['modelo_veiculo'].'</option>';
  }
}

?>

 

A questão é a seguinte, preciso passar para o terceiro combo, a informação do primeiro combo também...

Creio eu que seja nessa linha do javascript:

$.post("modelos.php", //indica o nome do arrquivo 
{marca : $(this).val() //indica o nome da variavel, q será id e o valor q será enviado

Como eu pegaria o valor "tipo" do primeiro combo? Para depois receber no arquivo modelos.php e poder filtrar os dados?

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.