Step 1:Create Index.php file to implement below html code in it:
<div class="card"> <div class="card-header"> <div class="row"> <div class="col-lg-9">Customer Data</div> <div class="col-lg-3"> <select name="column_name" id="column_name" class="form-control selectpicker" multiple> <option value="0">ID</option> <option value="1">First Name</option> <option value="2">Last Name</option> <option value="3">Email</option> <option value="4">Gender</option> </select> </div> </div> </div> <div class="card-body"> <div class="table-responsive"> <table id="sample_data" class="table table-bordered table-striped"> <thead> <tr> <th>ID</th> <th>First Name</th> <th>Last Name</th> <th>Email</th> <th>Gender</th> </tr> </thead> </table> </div> </div> </div>
<script type="text/javascript" language="javascript"> $(document).ready(function(){ var dataTable = $('#sample_data').DataTable({ "processing" : true, "serverSide" : true, "order" : [], "ajax" : { url:"fetch.php", type:"POST" } }); $('#column_name').selectpicker(); $('#column_name').change(function(){ var all_column = ["0", "1", "2", "3", "4"]; var remove_column = $('#column_name').val(); var remaining_column = all_column.filter(function(obj) { return remove_column.indexOf(obj) == -1; }); dataTable.columns(remove_column).visible(false); dataTable.columns(remaining_column).visible(true); }); }); </script>
<?php //fetch.php $connect = new PDO("mysql:host=localhost;dbname=allphptricks", "root", ""); $column = array("customerid", "customer_first_name", "customer_last_name", "customer_email", "customer_gender"); $query = "SELECT * FROM customers"; if(isset($_POST["search"]["value"])) { $query .= ' WHERE customerid LIKE "%'.$_POST["search"]["value"].'%" OR customer_first_name LIKE "%'.$_POST["search"]["value"].'%" OR customer_last_name LIKE "%'.$_POST["search"]["value"].'%" OR customer_email LIKE "%'.$_POST["search"]["value"].'%" OR customer_gender LIKE "%'.$_POST["search"]["value"].'%" '; } if(isset($_POST["order"])) { $query .= 'ORDER BY '.$column[$_POST['order']['0']['column']].' '.$_POST['order']['0']['dir'].' '; } else { $query .= 'ORDER BY customerid DESC '; } $query1 = ''; if($_POST["length"] != -1) { $query1 = 'LIMIT ' . $_POST['start'] . ', ' . $_POST['length']; } $statement = $connect->prepare($query); $statement->execute(); $number_filter_row = $statement->rowCount(); $result = $connect->query($query . $query1); $data = array(); foreach($result as $row) { $sub_array = array(); $sub_array[] = $row['customerid']; $sub_array[] = $row['customer_first_name']; $sub_array[] = $row['customer_last_name']; $sub_array[] = $row['customer_email']; $sub_array[] = $row['customer_gender']; $data[] = $sub_array; } function count_all_data($connect) { $query = "SELECT * FROM customers"; $statement = $connect->prepare($query); $statement->execute(); return $statement->rowCount(); } $output = array( "draw" => intval($_POST["draw"]), "recordsTotal" => count_all_data($connect), "recordsFiltered" => $number_filter_row, "data" => $data ); echo json_encode($output); ?>
<html> <head> <title>How To Hide Specified Column On Select Of Item In JQuery</title> <!-- JS, Popper.js, and jQuery --> <script src="https://code.jquery.com/jquery-3.5.1.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script> <!-- CSS only --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script> <script src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script> <script src="https://cdn.datatables.net/1.10.22/js/dataTables.bootstrap4.min.js"></script> <link rel="stylesheet" href="https://cdn.datatables.net/1.10.22/css/dataTables.bootstrap4.min.css" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.14/dist/css/bootstrap-select.min.css"> <script src="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.14/dist/js/bootstrap-select.min.js"></script> </head> <style> body { background: black; } </style> <body> <div class="container"> <br /> <h1 align="center" class="text-white"><b>How To Hide Specified Column On Select Of Item In JQuery</b></h1> <br /> <div class="card"> <div class="card-header"> <div class="row"> <div class="col-lg-9">Customer Data</div> <div class="col-lg-3"> <select name="column_name" id="column_name" class="form-control selectpicker" multiple> <option value="0">ID</option> <option value="1">First Name</option> <option value="2">Last Name</option> <option value="3">Email</option> <option value="4">Gender</option> </select> </div> </div> </div> <div class="card-body"> <div class="table-responsive"> <table id="sample_data" class="table table-bordered table-striped"> <thead> <tr> <th>ID</th> <th>First Name</th> <th>Last Name</th> <th>Email</th> <th>Gender</th> </tr> </thead> </table> </div> </div> </div> </div> <script type="text/javascript" language="javascript"> $(document).ready(function(){ var dataTable = $('#sample_data').DataTable({ "processing" : true, "serverSide" : true, "order" : [], "ajax" : { url:"fetch.php", type:"POST" } }); $('#column_name').selectpicker(); $('#column_name').change(function(){ var all_column = ["0", "1", "2", "3", "4"]; var remove_column = $('#column_name').val(); var remaining_column = all_column.filter(function(obj) { return remove_column.indexOf(obj) == -1; }); dataTable.columns(remove_column).visible(false); dataTable.columns(remaining_column).visible(true); }); }); </script> <br /> <br /> </body> </html>