繁体   English   中英

如何使用 ajax 过滤复选框和下拉列表

[英]How to filter both checkbox and dropdown using ajax

我正在开发基于 php 的 web 应用程序,如果我只过滤复选框,它由复选框和下拉菜单组成,它工作正常,但是当在相同的下拉菜单上集成时,结果什么也不显示。 这是代码


$(document).ready(function(){

    filter_data();

    function filter_data()
    {
        var action  =  'fetch_data';
        var jobtype =  get_filter('jobtype');//checkbox
        var salary  =  get_filter('salary');//checkbox
        $('#category').change(function(){  //dropdown
           var category = $(this).val(); 

        $.ajax({
            url:"fetch_data.php",
            method:"POST",
            data:{action:action,jobtype:jobtype,salary:salary,category:category},
            success:function(data){

                $('.filter_data').html(data);

            }
        });
    }}

    function get_filter(class_name)
    {
        var filter = [];
        $('.'+class_name+':checked').each(function(){
             $('#pleasehide').hide();
            filter.push($(this).val());

        });
        return filter;
    }
    $('.common_selector').click(function(){
        filter_data();
    });

});
</script> 

fetch_data.php


if(isset($_POST["action"]))
{
 $query = "
  SELECT * FROM detail WHERE status = '1'
 ";

 if(isset($_POST["jobtype"]))
 {
    $jobtype_filter = implode("','", $_POST["jobtype"]);
    $query .= "
    AND  JType IN('".$jobtype_filter."')";
 }
 if(isset($_POST["salary"]))
 {
    $salary_filter = implode("','", $_POST["salary"]);
    $query .= "
    AND  SalFro IN('".$salary_filter."')";
 }
 if(isset($_POST["category"]))
 {
    $category =  $_POST["category"]);
    $query .= "
    AND  category like('".$category."')";
 }
remaining sql code

当我在 fetch_data 部分添加类别代码时,结果什么也不显示

愿你平安,愿上帝慈悲

我朋友的解决方案是重复这个过程


 $(document).ready(function() { filter_data(); function filter_data() { var action = 'fetch_data'; var id = <?php echo $IdCat?>; var minimum_price = $('#hidden_minimum_price').val(); var maximum_price = $('#hidden_maximum_price').val(); var tag_1 = get_filter('tag_1'); var tag_2 = get_filter('tag_2'); var tag_3 = get_filter('tag_3'); var status = get_filter('status'); var tag_4 = get_filter('tag_4'); var tag_5 = get_filter('tag_5'); //console.log(tag_2); console.log(tag_3); $.ajax({ url: "includes/templates/fetch_data.php", method: "POST", data: { action: action, id: id, minimum_price: minimum_price, maximum_price: maximum_price, tag_1: tag_1, tag_2: tag_2, tag_3: tag_3, tag_4: tag_4, tag_5: tag_5, status: status }, success: function(data) { //console.log('ok'); $('#filter_data').html(data); } }); $('#select').on('change', function selects() { var selects = $(this).val(); console.log(selects); $.ajax({ url: "includes/templates/fetch_data.php", method: "POST", data: { action: action, id: id, minimum_price: minimum_price, maximum_price: maximum_price, tag_1: tag_1, tag_2: tag_2, tag_3: tag_3, tag_4: tag_4, tag_5: tag_5, status: status, order: selects }, success: function(data) { //console.log('ok'); $('#filter_data').html(data); } }); }); } function get_filter(class_name) { var filter = []; $('.' + class_name + ':checked').each(function() { filter.push($(this).val()); }); return filter; } $('.common_selector').click(function() { filter_data(); }); $('#price_range').slider({ range: true, min: <?php echo $price['Price']?>, max: <?php echo $pricemax['Price']?>, orientation: "horizontal", values: [<?php echo $price['Price']?>, <?php echo $pricemax['Price']?>], step: 10, stop: function(event, ui) { $('#price_show').html(ui.values[0] + ' - ' + ui.values[1]); $('#hidden_minimum_price').val(ui.values[0]); $('#hidden_maximum_price').val(ui.values[1]); filter_data(); } }); });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM