Jump to content
Rebeca Julia Bronzatti

Filtros com PHP, AJAX e MySQL

Recommended Posts

Eu tô fazendo um site pra uma imobiliária e nele eu possui filtros que não são obrigatórios e nem possuem submit, ex: quantidade de quartos, quantidade de vagas, localização e assim por diante, algo em torno de 15 filtros o usuário pode escolher os filtros que deseja e assim o site realizar uma busca, como não tenho submit tô usando ajax e javascript pra conseguir recuperar os valores, o meu problema está em executar um query com esses valores, eu tô com um form de teste com dois campos só, porém ele não ta executando redondinho do jeito que  preciso, tenho um input e um select se eu selecionar um dos dois ele executa a query mas mostra que a outra não está definida, se eu preencho as duas ele não executa a query, se alguém puder me dar um help em como fazer isso agradeceria muito, tô enrolada nisso faz um tempinho já

<body>
        <form method="POST" id="form-pesquisa" action="">
        <input type="text" id="pesquisa" style="width: 35%; height: 40px; text-align: center; font-size: 25px;"/>
        <select name="idade" id="select_idade">
            <option value="19" selected>19</option>
            <option value="18">18</option>
        </select>
        </form>
        <div class="resultado" style="border: 1px solid #222; width: 35%; margin-top: 30px; height: 30px;">
        </div>
   </body>
$(function(){
    $("#select_idade").change(function(){
               var select_idade = $(this).val();
               if(select_idade != ''){
                   var select = {
                       idade : select_idade
                   }
                   $.post('busca_banco.php', select, function(retorna){
                       $(".resultado").html(retorna);
                   });
               }else{
                   $(".resultado").html('');
               }
    });
    
    //Pesquisar sem refresh na página
    $("#pesquisa").keyup(function(){
        
        var pesquisa = $(this).val();
        
        //Verifica se há algo digitado

        if(pesquisa != ''){
            var dados = {
                palavra : pesquisa
            }           
   
        $.post('busca_banco.php', dados, function(retorna){
           //Mostra dentro da div os resultados obtidos
            $(".resultado").html(retorna);
        });
    }else{
        $(".resultado").html('');
    }
    });
});
$idade = $_POST['idade'];

$busca = $_POST['palavra'];

$busca_select = "SELECT * FROM teste WHERE TRUE
    AND IF('$idade' != 0, TRUE)
    AND IF('$busca' !=0, TRUE)";
$result_busca = mysqli_query($cnn, $busca_select);
if(mysqli_num_rows($result_busca)<=0){
    echo '<div style = "width:80%; overflow:auto; border-bottom:1px solid #333">
        Não existe resultado
        </div>
        ';
}else{
    while ($rows = mysqli_fetch_assoc($result_busca)){
        echo '<div style = "width:35%; overflow:auto; border-bottom:1px solid #333">
        '.$rows['idade'].' - '.$rows['palavra'].' <br>
        </div>
        ';
    }
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By DinhoPHP
      Estou tentando enviar um anexo e o mesmo não chega no email, apenas quando não faço uso da função attach.
      arquivo que contém as functions responsáveis pelo envio do email.
      public function attach(string $filePath, string $fileName): Email{ $this->data->attach[$filePath] = $fileName; return $this; } Arquivo que utiliza a função attach.
      No arquivo que captura os dados do formulário, já passei os parâmetros de tudo quanto é jeito.
      require __DIR__ . "/include/head.php"; require __DIR__ . "/vendor/autoload.php"; use Source\Support\Email; $email = new Email(); // CAPTURANDO DADOS DO FORMULÁRIO $nome = trim(ucwords(preg_replace('/\s\s+/', ' ',($_POST['nome-curriculo'])))); $eemail = trim(strtolower(preg_replace('/\s\s+/', ' ',($_POST['email-curriculo'])))); $telefone = trim(preg_replace('/\s\s+/', ' ',($_POST['telefone-curriculo']))); $cidade = trim(preg_replace('/\s\s+/', ' ',($_POST['cidade-curriculo']))); $assunto = trim(preg_replace('/\s\s+/', ' ',($_POST['assunto-curriculo']))); $mensagem = trim(preg_replace('/\s\s+/', ' ',("<pre>".$_POST['mensagem-curriculo']."</pre>"))); // $file_tmp = ($_FILES['file'], $_POST['name']); $files = $_FILES['curriculo']; $email->add($assunto, "<h3>Nome: {$nome}<br>{$files['name']}<br>Email: {$eemail}<br><br>Telefone: {$telefone}<br><br>Cidade: {$cidade}<br><br></br>Mensagem:<br>{$mensagem}</h3>", $nome, $eemail)->attach($files['tmp_name'], $files['name'])->send(); var_dump($files); A função attach que recebe dois parâmetros, quando utilizada, não envia o anexo vindo do form HTML, já digitando os parâmetros na função, ela envia o anexo. Já li até alguns casos semelhantes aqui mesmo e nada! Só envia o anexo digitando os parâmetros manualmente. 
    • By Sapinn
      Como faço para trazer checkbox marcados com os dados do banco eu consigo enviar e cadastrar dados de checkbox marcados em uma tabela  SQL mas não sei como trazer os checkbox marcadas em uma listagem de PHP procedural.
    • By Rafaelmcd
      Olá, tenho um site em WordPress e preciso de uma regra para fazer um redirecionamento em massa, um redirecionamento 301.
      A regra seria mais ou menos assim, alterar links assim: https://site.com/blog/leia-top-games para https://site.com/blog/top-games
      Ou seja, precisa retirar o "leia-" de todos os link e redirecionar para o link novo.
      Alguém poderia me ajudar?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.