Showing posts with label Codeigniter Ajax Pagination. Show all posts
Showing posts with label Codeigniter Ajax Pagination. Show all posts

Codeigniter Ajax dropdown

Codeigniter Ajax dropdown


Codeigniter ajax dropdown Codeigniter Framework Lot of task previously discussed. Today discussed Codeigniter dropdown ajax how to implemented. Similarly Codeigniter ajax Pagination  
Codeigniter Ajax dropdown
Codeigniter Ajax dropdown

Dropdown City and Country Used Ajax


Controller
<?php

class User extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('country_model');
    }

    public function index() {
        $this->load->view('register');
    }

    public function register() {
        $data['countries'] = $this->country_model->get_countries();
        $this->load->view('post_view', $data);
    }

    public function get_cities($country) {
        $this->load->model('city_model');
        header('Content-Type: application/x-json; charset=utf-8');
        echo(json_encode($this->city_model->get_cities($country)));
    }

}
City_Model
<?php

class City_model extends CI_Model {

    public function __construct() {
        $this->load->database();
    }

    function get_cities($country = null) {
        $this->db->select('id, city_name');

        if ($country != NULL) {
            $this->db->where('country_id', $country);
        }

        $query = $this->db->get('cities');
        $cities = array();

        if ($query->result()) {
            foreach ($query->result() as $city) {
                $cities[$city->id] = $city->city_name;
            }
            return $cities;
        } else {
            return FALSE;
        }
    }

}
?>

Country_Model

<?php

class Country_model extends CI_Model {

    public function __construct() {
        $this->load->database();
    }

    function get_countries() {
        $this->db->select('id, country_name');
        $query = $this->db->get('countries');
        echo "countries";
        $countries = array();

        if ($query->result()) {
            foreach ($query->result() as $country) {
                $countries[$country->id] = $country->country_name;
            }
            return $countries;
        } else {
            return FALSE;
        }
    }

}
?>

View
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script type="text/javascript">// <![CDATA[
            $(document).ready(function() {
                $('#country').change(function() { //any select change on the dropdown with id country trigger this code
                    $("#cities > option").remove(); //first of all clear select items
                    var country_id = $('#country').val(); // here we are taking country id of the selected one.
                    $.ajax({
                        type: "POST",
                        url: "http://localhost/task/user/get_cities/" + country_id, //here we are calling our user controller and get_cities method with the country_id

                        success: function(cities) //we're calling the response json array 'cities'
                        {
                            $.each(cities, function(id, city) //here we're doing a foeach loop round each city with id as the key and city as the value
                            {
                                var opt = $('<option />'); // here we're creating a new select option with for each city
                                opt.val(id);
                                opt.text(city);
                                $('#cities').append(opt); //here we will append these new select options to a dropdown with the id 'cities'
                            });
                        }

                    });

                });
            });
            // ]]>
        </script>
    </head>
    <body>
        <?php $countries['#'] = 'Please Select'; ?>

        <label for="country">Country: </label><?php echo form_dropdown('country_id', $countries, '#', 'id="country"'); ?><br />
        <?php $cities['#'] = 'Please Select'; ?>
        <label for="city">City: </label><?php echo form_dropdown('city_id', $cities, '#', 'id="cities"'); ?><br />
    </body>
</html>


Codeigniter Frameworks

Codeigniter Frameworks

Codeigniter Frameworks is a powerful PHP Frameworks with a very small footprint, built for developer and very easily learn in Codeigniter Frameworks. Basic Introduction of Codeigniter Framework  Please Click Here   

Codeigniter Frameworks
Codeigniter Frameworks


Best Features of Codegniter

  • Model-View-Controller System(MVC)
  • Light Wight
  • Full Featured database classes with support for several platforms
  • Form and Data Validation
  • Active Record Databasupport
  • FTP Class
  • Session Management
  • Security and XSS Filtering
  • Email Sending Class. Support Attachments, HTML/Text email, and Multiple Protocols
  • Localization
  • Pagination and Image manipulation LibraryC
  • Search Engine Friendly URL's
Codeigniter Session Storage

Codeigniter Session Storage is very simpley and easily storage Login Authentication Username storage session Read More

Important Codeigniter Tutorial


Security Features of Codeigniter Frameworks 

1.Codeigniter Seacurity Features First Remote code Execution <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed'); ?> This Ensures that the PHP Files is not accessible directly by manipulating or running a script, which would compromise the system.

2.SQL injection: This type of attack is highly common on the web. A SQL injection occurs when an attacker exploits the front-end and the post data to retrieve secure data from the database. According to CodeIgniter manual, it becomes evident that your web application is automatically safe from SQL injection as the POST data is retrieved in the controller using $this->input->post (‘’); which is automatically filtered by CodeIgniter.  CodeIgniter User Manual excerpt proves this fact: “Beyond simplicity, a major benefit to using the Active Record features is that it allows you to create database independent applications, since the query syntax is generated by each database adapter. It also allows for safer queries, since the values are escaped automatically by the system.”

3,XSS Attacks: An XSS or Cross Site scripting attack is unarguably the common reason for the demise of web applications. A XSS attack works by a hacker crafting a malicious URL into the browser in order to compromise the security of the application. CodeIgniter has a built in XSS filter which is initialized automatically. In order to double check the security threats against XSS attacks, a Firefox add-on called XXS Me (download here) can be used to test the sample application against 96 different types of attacks. The results are shown in the image below. It shows that the all form input fields were not found unencoded, which means the XSS filter within CodeIgniter did its job.

Codeigniter full featrued JQuery datatables

Codeigniter full featrued JQuery datatables


PHP Codeigniter full featrued Jquery datatables means fetch data display table default set pagination and filter included more featreued in datatable. Create cool full featured datatables for your daily in any Codeigniter  Projects specially CMS and how to add controls.

Codeigniter full featrued JQuery datatables
Codeigniter full featrued JQuery datatables

You are Familiar with Codeigniter
You have a webserver up and running (XAMP,LAMP, AND WAMP Server)

example database code:

CREATE TABLE `demotable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first` varchar(100) DEFAULT NULL,
`last` varchar(100) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`date_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=latin1;
insert into `demotable`(`id`,`first`,`last`,`email`,`date_created`) values (23,'Amedd','samy','dev2tricks@gmail.com','2013-03-11 23:11:40');
insert into `demotable`(`id`,`first`,`last`,`email`,`date_created`) values (24,'John','Carter','test@test.com','2013-03-11 23:19:05');
insert into `subscriber`(`id`,`first`,`last`,`email`,`date_created`) values (25,'Lina','Khaled','lina@hotmail.com','2013-03-17 20:54:48');
Download and extract Codeigniter in your root folder

Change base_url  in your application/config/config.php file to

$config['base_url'] = 'http://localhost/tutorial_datatables;

Make sure you set database configuration in your application/config/database.php

-Download ignited datatables library from https://github.com/IgnitedDatatables/Ignited-Datatables

-Copy Datatables.php in application/libraries

-Download Datatables JS plugin from http://www.datatables.net/download/

- Create assets folder with the below structure

Copy jquery.dataTables.min.js   from  DataTables-1.9.4\media\js  to assets\js

-Create a CSS file called style.css in assets/css

body{font-family:Arial,Helvetica,sans-serif;background-color:#F0F0F0;font-size:12px;}
h1{color:#072936;}
.wrapper{width:730px;margin:0 auto;}
footer{border-top:1px solid #CCC;float:right;font-size:12px;width:81%;margin:40px 0 0;padding:10px;}
#big_table_wrapper{background-color:#fff;}
#big_table_wrapper .dataTables_length{float:left;}
#big_table_wrapper .dataTables_filter{float:right;}
#big_Table_wrapper .ui-toolbar{padding:5px;}
#big_table{width:730px;text-align: center;}
.dataTables_paginate .ui-button{margin-right:-.1em!important;}
.paging_full_numbers .ui-button{color:#333!important;cursor:pointer;margin:0;padding:2px 6px;}
.dataTables_info{float:left;width:50%;padding-top:3px;}
.dataTables_paginate{float:right;text-align:right;width:auto;}
.paging_full_numbers{width:350px!important;}
#big_table_processing > img{padding-left:20px;}</code>

-Change the default controller in application/config/routes.php

$route['default_controller'] = "subscriber";

Application/Controller
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Subscriber extends CI_Controller
{
 
    public function __construct()
    {
        parent::__construct();
        $this->load->library('Datatables');
        $this->load->library('table');
        $this->load->database();
    }
 
    function index()
    {
 
        //set table id in table open tag
        $tmpl = array('table_open' => '<table id="big_table" border="1" cellpadding="2" cellspacing="1" class="mytable">');
        $this->table->set_template($tmpl);
 
        $this->table->set_heading('First Name', 'Last Name', 'Email');
 
        $this->load->view('subscriber_view');
    }
 
    //function to handle callbacks
    function datatable()
    {
        $this->datatables->select('id,first,last,email')
            ->unset_column('id')
            ->from('subscriber');
 
        echo $this->datatables->generate();
    }
}

Application/View
<h1>Subscriber management</h1>
<?php echo $this->table->generate(); ?>
</div>
<script type="text/javascript">
    $(document).ready(function () {
        var oTable = $('#big_table').dataTable({
            "bProcessing": true,
            "bServerSide": true,
            "sAjaxSource": '<?php echo base_url(); ?>index.php/subscriber/datatable',
            "bJQueryUI": true,
            "sPaginationType": "full_numbers",
            "iDisplayStart ": 20,
            "oLanguage": {
                "sProcessing": "<img src='<?php echo base_url(); ?>assets/images/ajax-loader_dark.gif'>"
            },
            "fnInitComplete": function () {
                //oTable.fnAdjustColumnSizing();
            },
            'fnServerData': function (sSource, aoData, fnCallback) {
                $.ajax
                ({
                    'dataType': 'json',
                    'type': 'POST',
                    'url': sSource,
                    'data': aoData,
                    'success': fnCallback
                });
            }
        });
    });
</script>
$('#big_table').dataTable
"sAjaxSource":'<?php echo base_url(); ?>index.php/subscriber/datatable'
<?php echo $this->table->generate(); ?>



Codeigniter Ajax Pagination


Codeigniter Ajax Pagination

Codeigniter Ajax Pagination today solve this task so just share with your. Today we will discuss how to create ajax pagination in Codeigniter Framework. Codeigniter have the pagination library by default.  But many times we are needed to implemented ajax based pagination in codeigniter. and pagination responsive design you implemented your own designed.

Already we discussed codeigniter framework and other related topics so just go the task at first we need to add ajax pagination into the Codeigniter Pagination library.  Copy the Codeigniter pagination library and modify with ajax pagination code.  Rename the Pagination Class to Ajaxpagination and insert the Ajaxpagination.php file into the library folder.  you can download the CodeIgniter Ajax pagination library from the Click Here

   
Codeigniter Ajax Pagination
Codeigniter Ajax Pagination
First Create table


CREATE TABLE `dent_adminusers` (
  `id` int(11) NOT NULL auto_increment,
  `adminname` varchar(50) NOT NULL,
  `username` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  `email` varchar(50) NOT NULL,
  `status` enum('Active','Suspend','Deactive') NOT NULL default 'Deactive',
  `mailstatus` enum('0','1') NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

Controller

Create a controller file named posts.php with Posts classed. Into the __construct() function we need to load post model.  Ajaxpagination library. And we set the per page data limit into the $this-perPage variable.


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * Posts Management class created by CodexWorld
 */
class Posts extends CI_Controller {
    
    function __construct() {
        parent::__construct();
        $this->load->model('post');
        $this->load->library('Ajaxpagination');
        $this->perPage = 1;
    }
    
    public function index()
    {
        $data = array();
        
        //total rows count
        $totalRec = count($this->post->getRows());
        
        //pagination configuration
        $config['first_link']  = 'First';
        $config['div']         = 'postList'; //parent div tag id
        $config['base_url']    = base_url().'posts/ajaxPaginationData';
        $config['total_rows']  = $totalRec;
        $config['per_page']    = $this->perPage;
        
        $this->ajax_pagination->initialize($config);
        
        //get the posts data
        $data['posts'] = $this->post->getRows(array('limit'=>$this->perPage));
        
        //load the view
        $this->load->view('posts/index', $data);
    }
    
    function ajaxPaginationData()
    {
        $page = $this->input->post('page');
        if(!$page){
            $offset = 0;
        }else{
            $offset = $page;
        }
        
        //total rows count
        $totalRec = count($this->post->getRows());
        
        //pagination configuration
        $config['first_link']  = 'First';
        $config['div']         = 'postList'; //parent div tag id
        $config['base_url']    = base_url().'posts/ajaxPaginationData';
        $config['total_rows']  = $totalRec;
        $config['per_page']    = $this->perPage;
        
        $this->ajax_pagination->initialize($config);
        
        //get the posts data
        $data['posts'] = $this->post->getRows(array('start'=>$offset,'limit'=>$this->perPage));
        
        //load the view
        $this->load->view('posts/ajax-pagination-data', $data, false);
    }
}


Model:

Codeigniter Ajax Pagination Create a Model file follows Code.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Post extends CI_Model{
    
    function __construct() {
        $this->postTable = 'posts';
    }
    
    function getRows($params = array())
    {
        $this->db->select('*');
        $this->db->from($this->postTable);
        $this->db->order_by('created','desc');
        
        if(array_key_exists("start",$params) && array_key_exists("limit",$params)){
            $this->db->limit($params['limit'],$params['start']);
        }elseif(!array_key_exists("start",$params) && array_key_exists("limit",$params)){
            $this->db->limit($params['limit']);
        }
        
        $query = $this->db->get();
        
        return ($query->num_rows() > 0)?$query->result_array():FALSE;
    }
}
?>


View

Codeigniter Ajax Pagination responsive or your design modify view page.


<h1>Posts</h1>
<div id="container">
    <ul class="list" id="postList">
        <?php if(!empty($posts)): foreach($posts as $post): ?>
        <li>
            <p><b>Title:</b>&nbsp;<?php echo $post['title']?></p>
            <p><b>Content:</b>&nbsp;<?php echo $post['content']?></p>
            <p><b>Created:</b>&nbsp;<?php echo $post['created']?></p>
        </li>
        <?php endforeach; else: ?>
        <li class="err_msg">Post(s) not available.</li>
        <?php endif; ?>
        <?php echo $this->ajax_pagination->create_links(); ?>
    </ul>
</div>