Codeigniter Tutorials
- What is codeigniter?
- Application_Architecture
- MVC Architecture
- HMVC Architecture
- Codeigniter Configuration
- Remove index.php from url in codeigniter
- MVC Concept
- View
- Alternate PHP Syntax for View Files
- Routing
- Codeigniter URL
- Get Current URL
- Previous page URL get
- Seo Friendly URL
- Slug Create in codeigniter
- What is _remap() function
- Remove controller name from url in codeigniter
- Codeigniter Controller Class
- Class Constructor
- GET $ POST method in Codeigniter
- Models
- Basepath, Apppath, FCPATH
- URI Segment
- Page Redirect
- Helper class
- Custom Helper class
- Form Helper
- Common Helper Functions
- Common Function
- Array Problems
- Call controller in Helper
- Add active class to menu using Helper class
- Custom Library
- Custom Library Example
- when to use get_instance()
- Codeigniter Hook
- how to work inline css in codeigniter
- Custom 404 page
- 404 custom error page
- Create custom config file in codeigniter
- How to set and get config item value
- How to Speed Up CodeIgniter App?
- Codeigniter Functions
- Session
- cookies
- How to Set & Get Tempdata in Codeigniter
- flash messages in Codeigniter
- Flashdata
- Encryption and Decryption In CodeIgniter
- Codeigniter security
- csrf token form security
- Password Hashing
- Form Validation
- Custom Validation
- Registration Form with validation
- Server Side Form Validation
- Validate Select Option Field
- Date Format Validation
- Date Format change in codeigniter
- Date Functions
- DOB Validation
- CI CRUD
- User SignUp
- User Login
- User Logout
- Login Account
- Login form with RememberMe
- Login Form with session
- User change password
- Change Password with Callback Validation to Check Old Password
- Forgot password
- Reset password
- Insert data in database
- Fetch data from database
- Update data in database
- Delete data in database
- File Upload
- Image Upload with resize Image
- Upload Multiple file and images
- Upload Multiple images with CRUD
- File and image update
- Upload Image Using Ajax.
- Email Send
- Email Send Using Email library
- Email Send Using SMTP Gmail
- Notification send
- store data in json format in DB
- Json parse
- Fetch data Using Ajax with Json data
- How to Show data Using Ajax with Json parse
- Get JSON Data from PHP Script using jQuery Ajax
- Insert data Using Ajax
- Submit data Using Ajax with form validation
- How to show data Using Ajax in codeigniter
- Insert & Update Using Ajax
- Registration Form With Validation Using Ajax in codeigniter
- Delete data Using Ajax Confirmation
- Delete All data Using checkbox selection
- Ajax CSRF Token
- Ajax Post
- Ajax serverside form validation
- Contact form using AJAX with form validation
- DataTable Using Ajax dynamically
- DataTables pagination using AJAX with Custom filter
- DataTables AJAX Pagination with Search and Sort in codeigniter
- DataTables in Codeigniter using Ajax
- Ajax Custom Serarch
- Ajax Live Data Search using Jquery PHP MySql
- Ajax Custom Serarch and sorting in datatable
- Dynamic Search Using Ajax
- Autocomplete using jquery ajax
- Jquery Ajax Autocomplete Search using Typeahead
- Dynamic Dependent Dropdown Using Ajax
- Dynamic Dependent Dropdown list Using Ajax
- Dynamic Dependent Dropdown in codeigniter using Ajax
- ajax username/email availability check using JQuery
- Check Email Availability Using Ajax
- Data Load on mouse scroll
- Ajax CI Pagination
- Pagination in codeigniter
- Ajax Codeigniter Pagination
- email exists or not using ajax with json
- CRUD using AJAX With Modal popup in CI
- Add / Show Data on modal popup using Ajax
- Modal popup Validation using Ajax
- Data show on Modal popup Using Ajax
- Add / Remove text field dynamically using jquery ajax
- How to Add/Delete Multiple HTML Rows using JavaScript
- Delete Multiple Rows using Checkbox
- Multiple Checkbox value
- Form submit using jquery Example
- REST & SOAP API
- Multi-Language implementation in CodeIgniter
- How to pass multiple array in view
- Captcha
- create zip file and download
- PhpOffice PhpSpreadsheet Library (Export data in excel sheet)
- data export in excel sheet
- Excel File generate in Codeigniter using PHPExcel
- Dompdf library
- tcpdf library
- Html table to Excel & docs download
- CI Database Query
- Database Query
- SQL Injection Prevention
- Auth Model
- Join Mysql
- Tree View in dropdown option list
- OTP Integration in codeigniter
- curl post
- download file using curl
- Sweet Alert
- Sweet alert Delete & Success
- Log Message in Codeigniter
- Menu & Submenu show dynamically
- Set Default value in input box
- Cron Jobs
- Stored Procedure
- Display Loading Image when AJAX call is in Progress
- Send SMS
- IP Address
- Codeigniter Tutorialspoint
- Website Link
- How To Create Dynamic Xml Sitemap In Codeigniter
- Paypal Payment Integration
- Get Latitude and Longitude From Address in Codeigniter Using google map API
- How To Create Simple Bar Chart In Codeigniter Using AmCharts?
- dynamic Highcharts in Codeigniter
- Barcode in Codeigniter
- Codeigniter Interview Questions
- Project
DataTables pagination using AJAX with Custom filter in codeigniter?
View :-
HTML
Include DataTables and jQuery library at the <head > section.
Add custom filter elements in <div>.
Two <select > elements for city and gender search and a textbox for a name search.
Create <table id='userTable'>.
Script
Initialize DataTable on #userTable selector and assign in userDataTable variable.
Send AJAX request to <?=base_url()?>index.php/Users/userList and with data option read custom search fields values – #sel_city, #sel_gender, #searchName and append in the data object.
In the columns options specify the key names which get read on successful callback.
Define change event on the #sel_city, #sel_gender and keyup event on #searchName elements.
Call userDataTable.draw(); to redraw the DataTable.
File Name : user_view.php
<!DOCTYPE html>
<html>
<head>
<title>DataTables AJAX pagination with Custom filter in CodeIgniter 3</title>
<!-- Datatable CSS -->
<link href='//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css' rel='stylesheet' type='text/css'>
<!-- jQuery Library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<!-- Datatable JS -->
<script src="//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
</head>
<body>
<!-- Search filter -->
<div>
<!-- City -->
<select id='sel_city'>
<option value=''>-- Select city --</option>
<?php
foreach($cities as $city){
echo "<option value='".$city."'>".$city."</option>";
}
?>
</select>
<!-- Gender -->
<select id='sel_gender'>
<option value=''>-- Select Gender --</option>
<option value='male'>Male</option>
<option value='female'>Female</option>
</select>
<!-- Name -->
<input type="text" id="searchName" placeholder="Search Name">
</div>
<!-- Table -->
<table id='userTable' class='display dataTable'>
<thead>
<tr>
<th>Username</th>
<th>Name</th>
<th>Email</th>
<th>Gender</th>
<th>City</th>
</tr>
</thead>
</table>
<!-- Script -->
<script type="text/javascript">
$(document).ready(function(){
var userDataTable = $('#userTable').DataTable({
'processing': true,
'serverSide': true,
'serverMethod': 'post',
//'searching': false, // Remove default Search Control
'ajax': {
'url':'<?=base_url()?>index.php/Users/userList',
'data': function(data){
data.searchCity = $('#sel_city').val();
data.searchGender = $('#sel_gender').val();
data.searchName = $('#searchName').val();
}
},
'columns': [
{ data: 'username' },
{ data: 'name' },
{ data: 'email' },
{ data: 'gender' },
{ data: 'city' },
]
});
$('#sel_city,#sel_gender').change(function(){
userDataTable.draw();
});
$('#searchName').keyup(function(){
userDataTable.draw();
});
});
</script>
</body>
</html>
Controller :-
File Name : Users.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Users extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->helper('url');
// Load model
$this->load->model('User_model');
}
public function index(){
$cities = $this->User_model->getCities();
$data['cities'] = $cities;
// load view
$this->load->view('user_view',$data);
}
public function userList(){
// POST data
$postData = $this->input->post();
// Get data
$data = $this->User_model->getUsers($postData);
echo json_encode($data);
}
}
Model :-
File Name : User_model.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class User_model extends CI_Model {
// Get DataTable data
function getUsers($postData=null){
$response = array();
## Read value
$draw = $postData['draw'];
$start = $postData['start'];
$rowperpage = $postData['length']; // Rows display per page
$columnIndex = $postData['order'][0]['column']; // Column index
$columnName = $postData['columns'][$columnIndex]['data']; // Column name
$columnSortOrder = $postData['order'][0]['dir']; // asc or desc
$searchValue = $postData['search']['value']; // Search value
// Custom search filter
$searchCity = $postData['searchCity'];
$searchGender = $postData['searchGender'];
$searchName = $postData['searchName'];
## Search
$search_arr = array();
$searchQuery = "";
if($searchValue != ''){
$search_arr[] = " (name like '%".$searchValue."%' or
email like '%".$searchValue."%' or
city like'%".$searchValue."%' ) ";
}
if($searchCity != ''){
$search_arr[] = " city='".$searchCity."' ";
}
if($searchGender != ''){
$search_arr[] = " gender='".$searchGender."' ";
}
if($searchName != ''){
$search_arr[] = " name like '%".$searchName."%' ";
}
if(count($search_arr) > 0){
$searchQuery = implode(" and ",$search_arr);
}
## Total number of records without filtering
$this->db->select('count(*) as allcount');
$records = $this->db->get('users')->result();
$totalRecords = $records[0]->allcount;
## Total number of record with filtering
$this->db->select('count(*) as allcount');
if($searchQuery != '')
$this->db->where($searchQuery);
$records = $this->db->get('users')->result();
$totalRecordwithFilter = $records[0]->allcount;
## Fetch records
$this->db->select('*');
if($searchQuery != '')
$this->db->where($searchQuery);
$this->db->order_by($columnName, $columnSortOrder);
$this->db->limit($rowperpage, $start);
$records = $this->db->get('users')->result();
$data = array();
foreach($records as $record ){
$data[] = array(
"username"=>$record->username,
"name"=>$record->name,
"email"=>$record->email,
"gender"=>$record->gender,
"city"=>$record->city
);
}
## Response
$response = array(
"draw" => intval($draw),
"iTotalRecords" => $totalRecords,
"iTotalDisplayRecords" => $totalRecordwithFilter,
"aaData" => $data
);
return $response;
}
// Get cities array
public function getCities(){
## Fetch records
$this->db->distinct();
$this->db->select('city');
$this->db->order_by('city','asc');
$records = $this->db->get('users')->result();
$data = array();
foreach($records as $record ){
$data[] = $record->city;
}
return $data;
}
}
Table :-
File Name :
CREATE TABLE `users` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` varchar(80) NOT NULL,
`username` varchar(80) NOT NULL,
`gender` varchar(10) NOT NULL,
`email` varchar(80) NOT NULL,
`city` varchar(80) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
File Name :
File Name :