jeudi 19 janvier 2017

Search or filter a column in jquery datatable using multi select dropdown with checkbox

I am trying to filter or search a column in jquery datatable using multiselect checkbox drop down. Suppose for example if it is a city column, the table should filter or search if I check two cites as per checkbox drop down and display the result for the checked cites in drop down. I tried lot of ways to find solution but, i couldn't crack it upto now. if anyone can help in solving this it is greatly appreciated. Thanks in advance. I am just putting jquery code below for your reference.

<head>
    <meta charset="utf-8">
    <title>jQuery Datatable</title>

    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="http://ift.tt/2apRjw3">

    <!-- Optional theme -->
    <link rel="stylesheet" href="http://ift.tt/2aHU2x3">

    <link rel="stylesheet" href="http://ift.tt/2ipRM1v">

    <link rel="stylesheet" href="http://ift.tt/1S3Z84G">

    <!-- <script src="http://ift.tt/2eBd7UN"></script> -->

    <script src="http://ift.tt/20g0BuL"></script>

    <!-- Latest compiled and minified JavaScript -->
    <script src="http://ift.tt/2aHTozy"></script>

    <script src="http://ift.tt/2hZjvH5"></script>

    <script src="http://ift.tt/28BUbw5"></script>

    <style>
        * {
            margin:0;
            padding: 0;
        }
        #wrap {
            width: 100%;
            margin: auto;
        }
        .addcolr {
            color: green;
        }
    </style>
    <script>
        /*$(document).ready(function() {
        $('#example th').each(function() {
            alert(this.textContent);
        });
    });*/
        $(document).ready(function() {
          $('#example').DataTable({

            "bFilter": true,
            initComplete: function () {
            this.api().columns(2).every( function () {
                var column = this;
                var select = $('<select id="sel_dropdown" multiple="multiple"><option value=""></option></select>')
                    .appendTo( $(column.footer()).empty() );
                    /*.on( 'change', function () {
                        var val = $.fn.dataTable.util.escapeRegex(
                            $(this).val()
                        );

                        column
                            .search( val ? '^'+val+'$' : '', true, false )
                            .draw();
                    } );*/

                column.data().unique().sort().each( function ( d, j ) {
                    select.append( '<option value="'+d+'">'+d+'</option>' )
                } );
              } );
            }

          });

          $('#example tbody tr td:nth-child(4)').each( function(){

            if($(this).text() == 61) {
                  $(this).css("color","red");
            }
            else if($(this).text() == 47) {
                  $(this).addClass("addcolr");
            }
           });

          //multiselect
          $('#sel_dropdown').multiselect();

          // $('#example').DataTable();

          $('#sel_dropdown').change( function () { 
                $('#example').DataTable().fnFilter( $('#sel_dropdown').val(),2);
            });

        } );
    </script>
</head>
<body>
<div id="wrap"></div></body>

Aucun commentaire:

Enregistrer un commentaire