Controller:class MemberController extends Controller {  public function actionmember_list()    {

        $this->setauth();        $sql = " SELECT * FROM vcos_member WHERE 1=1 ";        $count_sql = "SELECT count(*) AS count FROM vcos_member WHERE 1=1 ";

        //如果post过来的内容为空,则使用默认值        $_name = '';        $_code = '';        $_sex = '-1';        $_verification = '-1';     $_isPage = 1; //判断是否点击分页按钮(首页,1,2,..  1:表示点击查询按钮,2表示点击分页按钮)

        //分页        $pageSize = 15 ;        $page = isset($_POST['page']) ? $_POST['page'] : 1;        $page_s = $page == 1 ? 0 : ($page-1) * $pageSize ;

        //$page = isset($_POST['page']) ? $_POST['page'] == 1 ? 0 : ($_POST['page']-1)*10 : 0;            if($_POST)        {            // SELECT * FROM vcos_member WHERE cn_name LIKE %$member_name% OR last_name LIKE %$member_name% OR first_name LIKE %$member%            // AND member_code LIKE %$member_code%             // AND sex = $sex             // AND member_verification = $member_verification            //var_dump($_POST);                            $member_name = (isset($_POST['member_name'])) ? $_POST['member_name'] : '';            $member_code = (isset($_POST['member_code'])) ? $_POST['member_code'] : '';            $sex = $_POST['sex'];            $member_verification = $_POST['member_verification'];

            $_name = $member_name;            $_code = $member_code;            $_sex = $sex;            $_verification = $member_verification;        $_isPage = $isPage;

            //如果post的内容不为默认值,拼接字符串            if($member_name != '')            {                $sql .= " AND (cn_name LIKE '%{$member_name}%' OR last_name LIKE '%{$member_name}%' OR first_name LIKE '%{$member_name}%') ";                $count_sql .=" AND (cn_name LIKE '%{$member_name}%' OR last_name LIKE '%{$member_name}%' OR first_name LIKE '%{$member_name}%') ";            }

            if($member_code != '')            {                $sql .= " AND member_code LIKE '%$member_code%' ";                $count_sql .= " AND member_code LIKE '%$member_code%' ";            }

            if($sex != '-1')            {                $sql .= " AND sex='{$sex}' ";                $count_sql .= " AND sex='{$sex}' ";            }

            if($member_verification != '-1')            {                $sql .= " AND member_verification='{$member_verification}' ";                $count_sql .= " AND member_verification='{$member_verification}' ";            }        }      

      //如果是点击查询按钮,重置页码为第一页
      if($_isPage == '1')
      {
        $page = 1;
        $page_s = 0;
      }


        $count_sql .= " ORDER BY member_id ASC ";        $count = Yii::app()->m_db->createCommand($count_sql)->queryRow();        $count = (int)ceil( $count['count'] / $pageSize );

        /*$criteria = new CDbCriteria();        $count = $count['count'];        $pager = new CPagination($count);        $pager->pageSize=15;        $pager->applyLimit($criteria);*/        //$sql  = "SELECT * FROM vcos_member ORDER BY member_id ASC LIMIT {$criteria->offset},{$pager->pageSize}";                $sql .= " ORDER BY member_id ASC LIMIT $page_s , $pageSize ";        $member = Yii::app()->m_db->createCommand($sql)->queryAll();

        $this->render('member_list',array('member'=>$member,'count'=>$count,'name'=>$_name,'code'=>$_code,'sex'=>$_sex,'verification'=>$_verification,'page'=>$page,'isPage'=>$_isPage));    }}

Html:
                              <form id='' class="form-horizontal" method="post" action="<?php echo Yii::app()->createUrl("Member/member_list");?>" autocomplete="on" >
                                <input type='hidden' name='page' value="<?php echo $page;?>">                                <input type='hidden' name='isPage' value="1";>
                                                            <div class="form-group">
                                                                <label class="col-xs-2 col-sm-2 col-md-2 control-label no-padding-right"><?php echo yii::t('vcos', '会员名');?>:</label>
                                                                <div class="col-xs-8 col-sm-8 col-md-7">
                                                                    <input type="text" id="member_name" name="member_name"  class="col-xs-10 col-sm-8 col-md-8" value="<?php echo $name;?>" />
                                                                </div>
                                                            </div>
                                                            <div class="space-4"></div>
                                                            <div class="form-group">
                                                                <label class="col-xs-2 col-sm-2 col-md-2 control-label no-padding-right"><?php echo yii::t('vcos', '会员编号')?>:</label>
                                                                <div class="col-xs-8 col-sm-8 col-md-7">
                                                                    <input type="text" id="member_code" name="member_code" class="col-xs-10 col-sm-8 col-md-8" value="<?php echo $code;?>" />
                                                                </div>
                                                            </div>

                                                            <div class="space-4"></div>
                                                            <div class="form-group">
                                                                <label class="col-xs-2 col-sm-2 col-md-2 control-label no-padding-right" for="form-field-select-1">性别:</label>
                                                                <div class="col-xs-8 col-sm-8 col-md-7">
                                                                    <select class="col-xs-10 col-sm-8 col-md-8" id="form-field-select-1" name="sex">
                                                                        <option value="-1" <?php if($sex == -1) {?> selected="" <?php }?>>全部</option>
                                                                        <option value="1"  <?php if($sex == 1)  {?> selected="" <?php }?>>男</option>
                                                                        <option value="2"  <?php if($sex == 2) { ?> selected="" <?php }?>>女</option>
                                                                    </select>
                                                                </div>
                                                            </div>

                                                            <div class="space-4"></div>
                                                            <div class="form-group">
                                                                <label class="col-xs-2 col-sm-2 col-md-2 control-label no-padding-right" for="form-field-select-1">状态:</label>
                                                                <div class="col-xs-8 col-sm-8 col-md-7">
                                                                    <select class="col-xs-10 col-sm-8 col-md-8" id="form-field-select-1" name="member_verification">
                                                                        <option value="-1" <?php if($verification == -1) {?> selected="" <?php }?>>全部</option>
                                                                        <option value="0"  <?php if($verification == 0)  {?> selected="" <?php }?>>未激活</option>
                                                                        <option value="1"  <?php if($verification == 1)  {?> selected="" <?php }?>>激活</option>
                                                                        <option value="2"  <?php if($verification == 2)  {?> selected="" <?php }?>>冻结</option>
                                                                    </select>
                                                                </div>
                                                            </div>

                                                            <input type="submit" value="<?php echo yii::t('vcos', '查询')?>" id="submit_where" class="btn btn-primary" style="margin-left: 45%"/>
                                                            <div style="clear:both"></div>

                                                            <div class="space-8"></div>
                                                            <table id="sample-table-1" class="table table-striped table-bordered table-hover">
                                                                <thead>
                                                                    <tr>
                                                                        <th><?php echo yii::t('vcos', '会员编号')?></th>
                                                                        <th><?php echo yii::t('vcos', '会员卡号')?></th>
                                                                        <th><?php echo yii::t('vcos', '姓名')?></th>
                                                                        <th style="width: 5%"><?php echo yii::t('vcos', '性别')?></th>
                                                                        <th><?php echo yii::t('vcos', '生日')?></th>
                                                                        <th><?php echo yii::t('vcos', '国家')?></th>
                                                                        <th><?php echo yii::t('vcos', '联系电话')?></th>
                                                                        <th style="width: 5%"><?php echo yii::t('vcos', '等级')?></th>
                                                                        <th style="width: 5%"><?php echo yii::t('vcos', '状态')?></th>
                                                                        <th style="width: 7%"><?php echo yii::t('vcos', '操作')?></th>
                                                                    </tr>
                                                                </thead>
                                                                <tbody>
                                                                    <?php foreach($member as $key=>$row){?>
                                                                    <tr>
                                                                        <td><?php echo $row['member_code'];?></td>
                                                                        <td><?php echo $row['smart_card_number'];?></td>
                                                                        <td><?php echo $row['cn_name'];?></td>
                                                                        <td><?php echo $row['sex'];?></td>
                                                                        <td><?php echo date("Y/m/d",$row['date_of_birth']);?></td>
                                                                        <td><?php echo $row['country_code'];?></td>
                                                                        <td><?php echo $row['mobile_number'];?></td>
                                                                        <td><?php echo $row['member_level'];?></td>
                                                                        <td><?php echo $row['member_verification'];?></td>
                                                                        <td>
                                                                            <?php
                                                                            $this->widget('ManipulateWidget',array(
                                                                                            'ControllerName'=>'Member',
                                                                                            'MethodName'=>'member_edit',
                                                                                            'id'=>$row['member_id'],
                                                                                            'canedit'=>TRUE,
                                                                                            'candelete'=>FALSE,
                                                                                        ));
                                                                            ?>
                                                                        </td>
                                                                    </tr>
                                                                    <?php } ?>
                                                                </tbody>
                                                            </table>
                                                        </form>                                <div class="center" id="page_div"><script src="<?php echo $theme_url; ?>/assets/js/jqPaginator.js"></script><script type="text/javascript">    jQuery(function($) {        var page = <?php echo $page;?>;        $('#page_div').jqPaginator({            totalPages: <?php echo $count;?>,            visiblePages: 5,            currentPage: page,            wrapper:'<ul class="pagination"></ul>',            first: '<li class="first"><a href="javascript:void(0);">首页</a></li>',            prev: '<li class="prev"><a href="javascript:void(0);">«</a></li>',            next: '<li class="next"><a href="javascript:void(0);">»</a></li>',            last: '<li class="last"><a href="javascript:void(0);">尾页</a></li>',            page: '<li class="page"><a href="javascript:void(0);">{{page}}</a></li>',            onPageChange: function (num) {                var val = $("input[name='page']").val();                if(num != val)                {                    $("input[name='page']").val(num);            $("input[name='isPage'").val(2);                    $("form").submit();                }            }        });     });</script>

jqPaginator.js:

(function ($) {
    'use strict';

    $.jqPaginator = function (el, options) {
        var self = this;

        self.$container = $(el);

        self.$container.data('jqPaginator', self);

        self.init = function () {

            var opts = self.options = $.extend({}, $.jqPaginator.defaultOptions, options);

            if (!opts.totalPages && !opts.totalCounts) {
                throw new Error('[jqPaginator] totalCounts or totalPages is required');
            }

            if (!opts.totalPages && opts.totalCounts && !opts.pageSize) {
                throw new Error('[jqPaginator] pageSize is required');
            }

            if (!opts.totalPages && opts.totalCounts && opts.pageSize) {
                opts.totalPages = Math.ceil(opts.totalCounts / opts.pageSize);
            }

            if (opts.currentPage < 1 || opts.currentPage > opts.totalPages) {
                throw new Error('[jqPaginator] currentPage is incorrect');
            }

            if (opts.totalPages < 1) {
                throw new Error('[jqPaginator] totalPages cannot be less currentPage');
            }

            self.extendJquery();

            self.render();

            self.fireEvent(this.options.currentPage);
        };

        self.extendJquery = function () {
            $.fn.jqPaginatorHTML = function (s) {
                return s ? this.before(s).remove() : $('<p>').append(this.eq(0).clone()).html();
            };
        };

        self.render = function () {
            self.renderHtml();
            self.setStatus();
            self.bindEvents();
        };

        self.renderHtml = function () {
            var html = [];

            var pages = self.getPages();
            for (var i = 0, j = pages.length; i < j; i++) {
                html.push(self.buildItem('page', pages[i]));
            }

            self.isEnable('prev') && html.unshift(self.buildItem('prev', self.options.currentPage - 1));
            self.isEnable('first') && html.unshift(self.buildItem('first', 1));
            self.isEnable('statistics') && html.unshift(self.buildItem('statistics'));
            self.isEnable('next') && html.push(self.buildItem('next', self.options.currentPage + 1));
            self.isEnable('last') && html.push(self.buildItem('last', self.options.totalPages));

            if (self.options.wrapper) {
                self.$container.html($(self.options.wrapper).html(html.join('')).jqPaginatorHTML());
            } else {
                self.$container.html(html.join(''));
            }
        };

        self.buildItem = function (type, pageData) {
            var html = self.options[type]
                .replace(/{{page}}/g, pageData)
                .replace(/{{totalPages}}/g, self.options.totalPages)
                .replace(/{{totalCounts}}/g, self.options.totalCounts);

            return $(html).attr({
                'jp-role': type,
                'jp-data': pageData
            }).jqPaginatorHTML();
        };

        self.setStatus = function () {
            var options = self.options;

            if (!self.isEnable('first') || options.currentPage === 1) {
                $('[jp-role=first]', self.$container).addClass(options.disableClass);
            }
            if (!self.isEnable('prev') || options.currentPage === 1) {
                $('[jp-role=prev]', self.$container).addClass(options.disableClass);
            }
            if (!self.isEnable('next') || options.currentPage >= options.totalPages) {
                $('[jp-role=next]', self.$container).addClass(options.disableClass);
            }
            if (!self.isEnable('last') || options.currentPage >= options.totalPages) {
                $('[jp-role=last]', self.$container).addClass(options.disableClass);
            }

            $('[jp-role=page]', self.$container).removeClass(options.activeClass);
            $('[jp-role=page][jp-data=' + options.currentPage + ']', self.$container).addClass(options.activeClass);
        };

        self.getPages = function () {
            var pages = [],
                visiblePages = self.options.visiblePages,
                currentPage = self.options.currentPage,
                totalPages = self.options.totalPages;

            if (visiblePages > totalPages) {
                visiblePages = totalPages;
            }

            var half = Math.floor(visiblePages / 2);
            var start = currentPage - half + 1 - visiblePages % 2;
            var end = currentPage + half;

            if (start < 1) {
                start = 1;
                end = visiblePages;
            }
            if (end > totalPages) {
                end = totalPages;
                start = 1 + totalPages - visiblePages;
            }

            var itPage = start;
            while (itPage <= end) {
                pages.push(itPage);
                itPage++;
            }

            return pages;
        };

        self.isEnable = function (type) {
            return self.options[type] && typeof self.options[type] === 'string';
        };

        self.switchPage = function (pageIndex) {
            self.options.currentPage = pageIndex;
            self.render();
        };

        self.fireEvent = function (pageIndex) {
            return (typeof self.options.onPageChange !== 'function') || (self.options.onPageChange(pageIndex) !== false);
        };

        self.callMethod = function (method, options) {
            switch (method) {
                case 'option':
                    self.options = $.extend({}, self.options, options);
                    self.render();
                    break;
                case 'destroy':
                    self.$container.empty();
                    self.$container.removeData('jqPaginator');
                    break;
                default :
                    throw new Error('[jqPaginator] method "' + method + '" does not exist');
            }

            return self.$container;
        };

        self.bindEvents = function () {
            var opts = self.options;

            self.$container.off();
            self.$container.on('click', '[jp-role]', function () {
                var $el = $(this);
                if ($el.hasClass(opts.disableClass) || $el.hasClass(opts.activeClass)) {
                    return;
                }

                var pageIndex = +$el.attr('jp-data');
                if (self.fireEvent(pageIndex)) {
                    self.switchPage(pageIndex);
                }
            });
        };

        self.init();

        return self.$container;
    };

    $.jqPaginator.defaultOptions = {
        wrapper: '',
        first: '',
        prev: '',
        next: '',
        last: '',
        page: '',
        totalPages: 0,
        totalCounts: 0,
        pageSize: 0,
        currentPage: 1,
        visiblePages: 7,
        disableClass: 'disabled',
        activeClass: 'active',
        onPageChange: null
    };

    $.fn.jqPaginator = function () {
        var self = this,
            args = Array.prototype.slice.call(arguments);

        if (typeof args[0] === 'string') {
            var $instance = $(self).data('jqPaginator');
            if (!$instance) {
                throw new Error('[jqPaginator] the element is not instantiated');
            } else {
                return $instance.callMethod(args[0], args[1]);
            }
        } else {
            return new $.jqPaginator(this, args[0]);
        }
    };

})(jQuery);

yii 分页 (ajax)的更多相关文章

  1. Yii GridView Ajax 刷新

    Yii GridView  Ajax 刷新,当页面点击一个按钮时,刷新数据. 1.控制器 <?php class privController extends Controller{ publi ...

  2. phpcms列表分页ajax加载更多

    1.在phpcms\modules\content\index.php文件中添加以下函数: /*列表分页ajax加载更多*/ public function homeajaxlist() {  if( ...

  3. Yii 框架ajax搜索分页

    要想实现ajax搜索分页 其实很简单 第一步:在 Yii 框架自带的搜索和分页正常运行的情况下,在视图层

  4. PHP+jQuery 列表分页类 ( 支持 url 分页 / ajax 分页 )

    /* ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8.3.mi ...

  5. Yii中Ajax的使用,如收藏功能

    view中 <?php $cs=Yii::app()->clientScript; $cs->registerScriptFile('http://ajax.googleapis.c ...

  6. yii 分页样式

    需求及效果图如下 没什么说的,就是修改分页,修改了CLinks分页的样式 上代码 <?php class GsearchPager extends CBasePager { const CSS_ ...

  7. [js高手之路]Node.js+jade+mongoose实战todolist(分页,ajax编辑,删除)

    该系列文章索引: [js高手之路]node js系列课程-创建简易web服务器与文件读写 [js高手之路]node js系列课程-图解express+supervisor+ejs用法 [js高手之路] ...

  8. yii 分页查询

    控制器 <?php namespace backend\controllers; use app\models\Comment; use app\models\Commentstatus; us ...

  9. ASP.NET MVC分页 Ajax+JsRender

    前段时间整mvc的分页,倒是很顺利,参考了以下几篇博客,启发很大. http://www.cnblogs.com/tangmingjun/archive/2012/05/30/2526301.html ...

随机推荐

  1. 06-自定义Attribute标记案例

    自定义Attribute: 1)Attribute都从System. Attribute类继承,类名一般以Attribute结尾 2) 标记类的用途—AttributeUsage标记(标记的标记):A ...

  2. java transient关键字和transaction的区别

    transient:表示临时的,不会被持久化,保存进数据库 transaction:表示事务 <div style="background: #fff; color: #0ff;&qu ...

  3. 大型系统开发sql优化总结(转)

    Problem Description: 1.每个表的结构及主键索引情况 2.每个表的count(*)记录是多少 3.对于创建索引的列,索引的类型是什么?count(distinct indexcol ...

  4. Jenkins学习之——(3)将项目发送到tomcat

    本章节将讲解如何将项目发送到tomcat,实现自动部署. 我只将一个测试的maven项目托管到github上的,不了解git获github的朋友自己百度一下,我也写了一些关于git的文章,希望大家可以 ...

  5. iOS 开发之EXC_BAD_ACCESS异常分析

    一:EXC_BAD_ACCESS异常介绍在调试objective-c程序的过程中,程序crash的现象在所难免,但大部分的错误都能够通过显示的错误原因结合NSLog的方式来解决,比如NSInvalid ...

  6. js页面跳转

    js方式的页面跳转1.window.location.href方式    <script language="javascript" type="text/java ...

  7. oracle 集合运算符

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAACNCAIAAAAvhQoxAAAbmklEQVR4nO1dX6jc1pn/0lBH4KVV6J ...

  8. 自定义ORM框架(转转)

    ORM背景 在数据库界,主流的数据库都是关系型数据库,其采用的关系型数据结构模型,无论从数学上还是实践中都相当的成熟,得到非常广泛的应用.在关系型数据结构理 论中,所有的数据都组织成一个个相互独立的二 ...

  9. TreeView无刷新获取text及value

    前台代码: <html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat ...

  10. 数据库和Doctrine(转载自http://www.111cn.net/phper/332/85987.htm)

    对于任何应用程序来说最为普遍最具挑战性的任务,就是从数据库中 读取和持久化数据信息.尽管symfony完整的框架没有默认集成ORM,但是symfony标准版,集成了很多程序,还自带集成了Doctrin ...