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

Filtro Dinamico PHP e AJAX


xdcblade

Pergunta

Ola pessoa alguém poderia me ajudar vi um tutorial bem interessante sobre filtros dinamicos, mas era de apenas 3 campos o que fiz contem 4... porem o 4 filtro não esta filtrando, esta carregando todas os dados existentes, n esta filtrando...

ex:

estado => cidade => segmento => Colegio (na hora de carregar o colegio ele não filtra exibe todod os colegios existentes)

banco

-- phpMyAdmin SQL Dump
-- version 3.5.1
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tempo de Geração: 
-- Versão do Servidor: 5.5.24-log
-- Versão do PHP: 5.3.13

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Banco de Dados: `ajuda`
--

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

--
-- Estrutura da tabela `tbl_cidade`
--

CREATE TABLE IF NOT EXISTS `tbl_cidade` (
  `id_cidade` int(2) NOT NULL AUTO_INCREMENT,
  `id_estado` int(2) NOT NULL,
  `segmento` varchar(10) NOT NULL,
  `cidade` varchar(20) NOT NULL,
  PRIMARY KEY (`id_cidade`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6;

--
-- Extraindo dados da tabela `tbl_cidade`
--

INSERT INTO `tbl_cidade` (`id_cidade`, `id_estado`, `segmento`, `cidade`) VALUES
(1, 1, 'Todos', 'Joao pessoa'),
(2, 2, 'Todos', 'Recife'),
(3, 1, 'Todos', 'Guarabira'),
(4, 2, 'MEdio', 'Paulista'),
(5, 1, 'Medio', 'caicara');

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

--
-- Estrutura da tabela `tbl_colegio`
--

CREATE TABLE IF NOT EXISTS `tbl_colegio` (
  `id_colegio` int(11) NOT NULL AUTO_INCREMENT,
  `colegio` varchar(50) NOT NULL,
  `id_estado` int(2) NOT NULL,
  `id_cidade` int(2) NOT NULL,
  `segmento` int(2) NOT NULL,
  PRIMARY KEY (`id_colegio`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3;

--
-- Extraindo dados da tabela `tbl_colegio`
--

INSERT INTO `tbl_colegio` (`id_colegio`, `colegio`, `id_estado`, `id_cidade`, `segmento`) VALUES
(1, 'GEO tambau', 1, 1, 4),
(2, 'Geo Recife', 2, 2, 4);

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

--
-- Estrutura da tabela `tbl_estado`
--

CREATE TABLE IF NOT EXISTS `tbl_estado` (
  `id_estado` int(2) NOT NULL AUTO_INCREMENT,
  `estado` char(2) NOT NULL,
  PRIMARY KEY (`id_estado`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3;

--
-- Extraindo dados da tabela `tbl_estado`
--

INSERT INTO `tbl_estado` (`id_estado`, `estado`) VALUES
(1, 'PB'),
(2, 'PE');

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

--
-- Estrutura da tabela `tbl_segmento`
--

CREATE TABLE IF NOT EXISTS `tbl_segmento` (
  `id_segmento` int(2) NOT NULL AUTO_INCREMENT,
  `segmento` varchar(50) NOT NULL,
  PRIMARY KEY (`id_segmento`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5;

--
-- Extraindo dados da tabela `tbl_segmento`
--

INSERT INTO `tbl_segmento` (`id_segmento`, `segmento`) VALUES
(1, 'todos os segmentos'),
(2, 'Ensino Médio'),
(3, 'Educacao Fundamental'),
(4, 'Educacao Infantil');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
index.php
<script type="text/javascript" src="jquery-1.8.0.min.js"></script>
<script type="text/javascript">
   
      $(document).ready(function(){
        // Evento change no campo tipo  
         $("select[name=estado]").change(function(){
            // Exibimos no campo marca antes de concluirmos
            $("select[name=cidade]").html('<option value="">Carregando...</option>');
            // Exibimos no campo marca antes de selecionamos a marca, serve também em caso
            // do usuario já ter selecionado o tipo e resolveu trocar, com isso limpamos a
            // seleção antiga caso tenha feito.
            $("select[name=cidade]").html('<option value="">Aguardando cidade...</option>');
            // Passando tipo por parametro para a pagina ajax-marca.php
            $.post("combo_cidade.php",
                  {estado:$(this).val()},
                  // Carregamos o resultado acima para o campo marca
                  function(valor){
                     $("select[name=cidade]").html(valor);
                  }<!--linha 22-->
                  )<!--linha19 -->
         })<!-- Lunha 11 -->
         
         //-----------------------------------------------------------------
         
         // Evento change no campo marca 
         $("select[name=cidade]").change(function(){
            // Exibimos no campo modelo antes de concluirmos
            $("select[name=segmento]").html('<option value="">Carregando...</option>');
            // Passando marca por parametro para a pagina ajax-modelo.php
            $.post("combo_segmento.php",
                  {cidade:$(this).val()},
                  // Carregamos o resultado acima para o campo modelo
                  function(valor){
                     $("select[name=segmento]").html(valor);
                  } //linha 38
                  )// linha 35
                  
                  
            
         }//linha 31
         
         )//linha 31
     
     
     
     $("select[name=segmento]").change(function(){
            // Exibimos no campo modelo antes de concluirmos
            $("select[name=colegio]").html('<option value="">Carregando...</option>');
            // Passando marca por parametro para a pagina ajax-modelo.php
            $.post("combo_colegio.php",
                  {segmento:$(this).val()},
                  // Carregamos o resultado acima para o campo modelo
                  function(valor){
                     $("select[name=colegio]").html(valor);
                  } //linha 38
                  )// linha 35
                  
                  
            
         }//linha 31
         
         )//linha 31
     
     
     
     
     
      }) //linha 9
      
</script>



</head>

<form action="" method="post" id="auto">
  <select name="estado">
    <option value="0">Escolher tipo</option>
        <?php
         mysql_connect("localhost", "root", "");
         mysql_select_db("aquigeo");
         
         $sql = "SELECT * FROM tbl_estado ORDER BY estado ASC";
         $qr = mysql_query($sql) or die(mysql_error());
         while($ln = mysql_fetch_assoc($qr)){
            echo '<option value="'.$ln['id_estado'].'">'.$ln['estado'].'</option>';
         }
      ?>
       
  </select>
   
  <select name="cidade">
     <option value="0" selected="selected">Aguardando tipo...</option>
  </select>
     <select name="segmento">
       <option value="0" selected="selected">Aguardando marca...</option>
     </select>
     
      <select name="colegio">
       <option value="0" selected="selected">Aguardando marca...</option>
     </select>
</form>


</body>
</html>
combo-cidade.php
<?php

mysql_connect("localhost", "root", "");
mysql_select_db("aquigeo");

$estado = $_POST['estado'];


$sql = "SELECT id_cidade, cidade FROM tbl_cidade WHERE estado = '$estado'  ORDER BY id_cidade ASC";
$qr = mysql_query($sql) or die(mysql_error());

if(mysql_num_rows($qr) == 0){
   echo  '<option value="0">'.htmlentities('Aguardando tipo...').'</option>';
   
}else{
         echo '<option value="">Selecione cidade...</option>';
   while($ln = mysql_fetch_assoc($qr)){
      echo '<option value="'.$ln['id_cidade'].'">'.$ln['cidade'].'</option>';
      
   }
}

?>
combo-segmento.php
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("aquigeo");

$cidade = $_POST['cidade'];

$sql = "SELECT id_segmento, segmento FROM tbl_segmento WHERE cidade = '$cidade' ORDER BY segmento ASC";


$qr = mysql_query($sql) or die(mysql_error());

if(mysql_num_rows($qr) == 0){
   echo  '<option value="0">'.htmlentities('Aguardando marca...').'</option>';
   
}else{
         echo '<option value="0">Selecione modelo...</option>';
   while($ln = mysql_fetch_assoc($qr)){
      echo '<option value="'.$ln['id_segmento'].'">'.$ln['segmento'].'</option>';
      
   }
}
?>
combo-colegio
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("aquigeo");



$segmento = $_POST['segmento'];    

$sql ="SELECT id_colegio, colegio FROM tbl_colegio WHERE  segmento ='$segmento'  ORDER BY colegio ASC";


$qr = mysql_query($sql) or die(mysql_error());

if(mysql_num_rows($qr) == 0){
   echo  '<option value="0">'.htmlentities('Aguardando marca...').'</option>';
   
}else{
         echo '<option value="0">Selecione modelo...</option>';
   while($ln = mysql_fetch_assoc($qr)){
      echo '<option value="'.$ln['id_colegio'].'">'.$ln['colegio'].'</option>';
      
   }
}

?>

alguém que programe bem sabe qual é o problema, pois n vi nehum um tutorial com 4 campos...

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Ola! estou com problemas com essa jquery também!

tenho esse codigo

&lt;script type="text/javascript">

$(document).ready(function(){

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

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

$.post("cidade.php",

{estado:$(this).val()},

function(valor){

$("select[name=cidade]").html(valor);

}

)

})

})

</script>

depois

$cont=0;

$sql="select * from Municipios where CodMun=" . $_POST['tpimovel] ;

$result = mysql_query($sql);

while($row = mysql_fetch_array($result))

{

$nome=$row['NomMun'];

// $estado=$row['uf'];

}

$sql=select * from tipo ";

$sql=$sql . " where codtipo in(select tpimovel from CadImoveis where cidade='" . $nome . "')";

$sql=$sql . " order by tipo desc,descricao ";

$qr = mysql_query($sql) or die(mysql_error());

echo '<option value="">Mostrar todos</option>';

echo '<optgroup label="Residencial"/>';

while($ln = mysql_fetch_assoc($qr))

{

if($ln['tipo]=='C' && $cont==0){

echo '<optgroup label="Comercial"/>';

$cont++;

}

echo "<option value=" .$ln['codtipo'] .">" . "" . utf8_encode($ln['descricao']) ."</option>";

}

echo '</optgroup>';

o </optgroup> não fica certo.

exibe assim

RESIDENCIAL

APARTAMENTO

mas o correto teria que ser

RESIDENCIAL

APARTAMENTO

O apartamento teria que ficar um tab para frente mas isso não acontece, já passou por isso?

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...