php和ajax分页小案例

今天需求是,添加一些通知的司机的信息。再添加通知的时候,需要把司机给列出来,多选择,还要加上根据司机的状态搜索。

首先看列表的界面

接着是添加页面:

添加页面右边显示司机列表是用ajax请求,分页和搜索也是ajax. 不能弄普通的分页,因为页面会刷新,会把昨天input数据给弄没掉。

这是当页面载入,请求服务器返回的数据。page: 页数 limit : 条数 status 司机的状态 搜索用的

 1 var limit = 10;
 2     var page = 1;
 3     var ststus = ‘‘;
 4     function _getpage(_page){
 5         if(_page == ""){
 6             _page = page;
 7         }
 8         $(‘input[name="status[]"]:checked‘).each(function(){
 9             ststus += $(this).val()+‘,‘;
10         });
11         var url = "{php echo webUrl(‘driver/list/moreDriver‘)}";
12         $.get(url,{page:_page, limit: limit, ‘status‘: ststus},function (data) {
13             var data = $.parseJSON(data);
14             var res = data.data;
15             if(res == ‘‘){
16                 $("#tbody").html("");
17                 $("#fenye").html("");
18             }
19             var str = "";
20             for(var i=0; i<res.length; i++){
21                 str += "<tr><td><input name=‘ids[]‘ type=‘checkbox‘ value=\""+res[i]["id"]+"\" ></td><td>"+ res[i][‘id‘]+"</td><td>"+ res[i][‘realname‘]+"</td></tr>";
22             }
23             $("#tbody").html(str);
24             $("#fenye").html(data.pager);
25         })
26     }


$("#fenye").html(data.pager);  这个是分页的html.从后台算好返回的。
$pager = pagination($count, $page, $limit);
        $pager = preg_replace("(<a[^>]*page[=|/](\d+).+?>(.+?)<\/a>)", "<a href=‘javascript:_getpage($1);‘>$2</a>", $pager);

  添加司机的时候,勾选checkbo把司机id已逗号分隔形式添加到textarea中。还记得把获得id的数组去重,点击刷新会chebox会失去原有状态,为了保持chexbox的状态,加了定时器。。。放到数组里面

去重函数
function removeDuplicatedItem(ar) {
        var ret = [];

        ar.forEach(function(e, i, ar) {
            if (ar.indexOf(e) === i) {
                ret.push(e);
            }
        });

        return ret;
    }

  这是点击chebox全选功能,使用prop是因为checked是checkbox的固有属性使用attr是直接删除设置属性可能会导致浏览器产生错误导致js无法继续执行

$("#all").click(function () {
            var ischecked = $(this).is(‘:checked‘);
            var ids=$(‘input[name="ids[]"]‘);
            ids.prop("checked",ischecked);
        })
    var id = "{$notify[‘id‘]}";
        // 添加时候      if(id == ‘‘ || id == undefined || id == null){
            var checkArr = [];
        }else{      // 编辑时候
            var checkedIds = "{$notify[‘dids‘]}";
            var checkArr = checkedIds.split(‘,‘);
        }
        $("#add_did").click(function () {
            $(‘input[name="ids[]"]:checked‘).each(function(){
                checkArr.push($(this).val());
            });
            var temp = [];        // 去重
            temp = removeDuplicatedItem(checkArr);
            $("#dids").val(temp.join(‘,‘));
        // 添加的时候定时保持状态
            setInterval(function () {
                $(‘input[name="ids[]"]‘).each(function() {
                    for(var i in temp){
                        if($(this).val() == temp[i]){
                            $(this).attr(‘checked‘, true);
                        }
                    }
                });
            },700);

        })
        if(checkArr != ‘‘){        // 已有数据定时保持状态
            setInterval(function () {
                $(‘input[name="ids[]"]‘).each(function() {
                    for(var i in checkArr){
                        if($(this).val() == checkArr[i]){
                            $(this).attr(‘checked‘, true);
                        }
                    }
                });
            },700);
        }

  

 

原文地址:https://www.cnblogs.com/lzy007/p/8193537.html

时间: 2024-11-04 12:20:14

php和ajax分页小案例的相关文章

[js开源组件开发]ajax分页组件

ajax分页组件 我以平均每一周出一个开源的js组件为目标行动着,虽然每个组件并不是很庞大,它只完成某一个较小部分的工作,但相信,只要有付出,总会得到回报的.这个组件主要完成分页的工作. 这张图里显示的是这个分页控件的两种基本形态,样式可以自己定制,包括文案内容. 这个分页控件的demo演示地址是: http://www.lovewebgames.com/jsmodule/paging.html 同时,它还是开源的,它的git 地址是:https://github.com/tianxiangbi

基于jquery的ajax分页插件(demo+源码)

前几天打开自己的博客园主页,无意间发现自己的园龄竟然有4年之久了.可是看自己的博客列表却是空空如也,其实之前也有写过,但是一直没发布(然而好像并没有什么卵用).刚开始学习编程时就接触到博客园,且在博客园学习了很多的知识,看过很多人的分享.说来也惭愧,自己没能为园友们分享自己的所学所得(毕竟水平比较差). 过去的一年也是辗转了几个城市换了几份工作(注定本命年不太平?).八月份来到现在所在的公司(OTA行业),公司是做互联网的,所以可能大家的前端都屌屌的?之前一直从事.NET开发(现在在这边也是),

Sencha小案例

1 Ext.require('Ext.TabPanel'); 2 Ext.application({ 3 name: 'MyApp', 4 icon: 'images/icon.png', 5 glossOnIcon: false, 6 tabletStartupScreen: 'img/tablet_startup.png', 7 phoneStartupScreen: 'img/phone_startup.png', 8 launch: function () { 9 var Content

jQuery实现跨域请请求小案例

jQuery从1.2开始就支持XMLHttp跨域请求了,具体怎么操作? jQuery中跨域访问的核心原理:JS文件注入,因为因为script标签的src属性是可以跨域的,利用script标签的src属性直接返回非本域名下的数据,具体采用的方式称为:jsonp.代码:    test.html,例如位于 www.qq.com     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/

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 ******* 其它组件:jQuery-1.8.3.min.js + Smarty 3.1.18 + TinyMCE 4.1.6 ******* Date:2014-10-20 ******* Author:小dee ******* Blog:http://www.cnblogs.com/dee0912/*

javascript常用小案例

常用javascript小案例 样式调节 //注: 这个可以控制td中的字段成行显示 #modelInfos td,th { white-space: nowrap; } //文本输入框随着内容尺寸往下变大,在input框中加入这两个属性,然后就可以控制文本输入框的大小尺寸随着内容而变 onpropertychange="this.style.height=this.scrollHeight + 'px'" oninput="this.style.height=this.sc

SQL基础分页存储过程(案例一)

1 --分页 存储过程 案例 2 3 -- 所执行的存储过程 4 create proc pageForUsers 5 @currPage int, --当前页数 6 @pageSize int, --每页多少条记录 7 @count int output --总记录数 8 as 9 declare @firstIndex int 10 declare @lastIndex int 11 declare @sqlText varchar(200) 12 13 --统计总记录数 14 select

Windows Server之浅谈SMB以及SMB小案例分享

SMB由来 服务器消息区块(英语:Server Message Block,缩写为SMB,服务器消息区块),又称网络文件共享系统(英语:Common Internet File System,缩写为CIFS),一种应用层网络传输协议,由微软开发,主要功能是使网络上的机器能够计算机文件.打印机.串行端口和通讯等资源.它也提供经认证的进程间通信机能.它主要用在装有Microsoft Windows的机器上,在这样的机器上被称为Microsoft Windows Network. SMB版本 OS W

Thinkphp 生成订单号小案例

Thinkphp 生成订单号小案例小伙伴们在日常的商城项目开发中,都会遇到订单号生成的问题,今天呢思梦PHP就带领大家去解读一下生成订单号的问题!首先,订单号我们要明确它有有3个性质:1.唯一性 2.不可推测性 3.效率性,唯一性和不可推测性不用说了,效率性是指不能频繁的去数据库查询以避免重复.况且满足这些条件的同时订单号还要足够的短.不知道小伙伴们在日常的项目中是否也和我一样去思考过生成订单的一些小问题,可能你也会说,这些东西不用想的那么复杂,其实呢,小编也是同意大家的看法,但是殊不知我们做程