ThinkPHP3.2分页显示,超详细,超简单

第一步:导入类

下载AjaxPage.class.php
我这里的提供的是之前3.1时候用的,在3.2用的时候需要在类里面加个命名空间

ThinkPHP3.2分页显示,超详细,超简单_第1张图片

Paste_Image.png


这个类放在ThinkPHP-  Library-Org-Util路径下

ThinkPHP3.2分页显示,超详细,超简单_第2张图片

Paste_Image.png


第二步:php里该写的代码

ProductController是我建的产品类

01 class ProductController extends PublicController{
02  
03     public function index()
04     {
05         //导入三方库
06  
07         // 查询满足要求的总记录数
08         $count $this->model->count();
09  
10         //创建对象,指定对象执行的方法
11         $Page new \Org\Util\AjaxPage($count,7,"productPage");//productPage是调用js中方法,通过该方法给js传递页码值,7代表一页显示7条数据
12  
13         // 实例化分页类 传入总记录数和每页显示的记录数
14         $show $Page->show();// 分页显示输出
15         // 进行分页数据查询 注意limit方法的参数要使用Page类的属性
16         $list $this->model->order('id asc')->limit($Page->firstRow.','.$Page->listRows)->select();
17  
18  
19         //判断是不是ajax,
20         if (!IS_AJAX){
21  
22             $this->assign('result',$list);// 赋值数据集
23             $this->assign('page',$show);// 赋值分页输出
24             $this->view(); // 输出模板
25  
26         }else{
27  
28             $data['result']=$list;
29             $data['page'] = $show;
30             $this->ajaxReturn($data);
31         }
32     }
33  
34     //编辑产品
35     public function edit(){
36  
37         //进入编辑页面,显示待编辑的信息
38         if (!empty($_GET)){
39             $result $this->model->where($_GET)->find();
40             $this->assign('result',$result);
41         }
42         //编辑完提交,保存,跳转回首页
43         if (!empty($_POST)){
44  
45             $id $_POST['id'];
46             $result $this->model->where("id=$id")->save($_POST);
47             //0表示保存失败
48             if ($result != 0){
49                 redirect('index');
50             }
51         }
52         $this->view();
53     }
54  
55     //删除产品
56     public function delete(){
57  
58         $id $_GET['id'];
59         $result $this->model->where("id=$id")->delete();
60         if ($result != 0){
61             $this->redirect('index');
62         }
63     }
64 }

3.2的写法

3.1的写法

page输出显示是这样的

ThinkPHP3.2分页显示,超详细,超简单_第3张图片

result输出显示是这样的

第三步:html该写的代码,把assign过来的数据赋值到td上

ThinkPHP3.2分页显示,超详细,超简单_第4张图片

下面是对应的代码

01 class="table table-bordered table-striped table-hover">
02     
03         
04             NO
                       
05             产品名称
06             单价
07             备注
08             操作
09         
10     
11     "neirong">
12         <foreach name="result" item="val">
13             class="cen">
14                 {$val.no}
15                 "#">{$val.pro_name}
16                 {$val.price}
17                 {$val.remark}
18                 
19                     class="btn btn-primary" onclick="edit({$val.id})">编辑
20                     class="btn btn-danger" onclick="del({$val.id})">删除
21                 
22             
23         foreach>
24     
25
26 class="panel panel-default">
27     class="panel-bd">
28         class="pagination">{$page}
29     
30

解释下关键代码:

这里设置个id,在js里面会用到

foreach为tp的标签,遍历数组用的,name对应数据源,item是循环变量

edit是写在js里的方法,根据id编辑内容

del是写在js里的方法,根据id删除内容

{$page}是显示1,2,3分页码的,这个class类后面js会用到

第四步:完成前三步,首页的信息肯定可以显示出来了,但是点击页码没有反应,这时候,我们需要在js里面请求新的数据

01

解释下关键代码:

function productPage(id) {这是我们php代码$Page = new \Org\Util\AjaxPage($count,7,"productPage")里的方法

url = '__APP__/home/product/index/p/'+id;p参数为页码,

//var data = eval('('+content+')'); //强制将json转成对象类型这里是注释,没错.建议在这步alert一下content,看看有没有数据,没有就打开这段代码试试.

你可能感兴趣的:(文章)