thinkphp解决无刷新分页搜索问题

来源:互联网 发布:做市商制度 知乎 编辑:程序博客网 时间:2024/06/01 08:57

问题起源比较蛋疼,就是点击第二页及以后出现图中情况查看源代码发现是这样的

 <tr>            <td>              <input type = "checkbox" value=""  name="s"></td>            <td value="">a</td>            <td>a</td>            <td>1</td>            <td>a</td>            <td></td>            <td></td>            <td></td>            <td>              <a  href="/thinkphp/index.php/Admin/MainLeft/AdminDetail/admin_name/a.html" onClick="detail(this)" style="cursor:pointer">详情</a>            </td>          </tr><tr>            <td>              <input type = "checkbox" value=""  name="s"></td>            <td value="">aa</td>            <td>aa</td>            <td>aa</td>            <td>aa@qq.com</td>            <td></td>            <td></td>            <td></td>            <td>              <a  href="/thinkphp/index.php/Admin/MainLeft/AdminDetail/admin_name/aa.html" onClick="detail(this)" style="cursor:pointer">详情</a>            </td>          </tr>    


页面主要情况:

解决办法主要思路:不进入分页链接,直接抓取其内容

1、控制器:

public function searchAdmin() {$admin = D('Admin');$limit = 2;$searchPara = I('get.searchPara');$adminList = $admin->searchAdmin($limit, $searchPara);$string = "";foreach ($adminList['list'] as $v) {$string .= "<tr><td><input type = 'checkbox' value=''  name='s'></td><td>" . $v['admin_name'] . "</td><td>" . $v['admin_realname'] . "</td><td>" . $v['admin_tele'] . "</td><td>" . $v['admin_email'] . "</td><td>" . $v['admin_dep'] . "</td><td>" . $v['admin_firstdep'] . "</td><td>" . $v['admin_seconddep'] ."</td><td><a onClick='detail(this)' style='cursor:pointer'>详情</a></td></tr>";}$page = $adminList['page'];$string = $string . "<th colspan='9'>" . $page . "</th>";// echo $string;$this->ajaxReturn($string, 'EVAL');}
2、复制一份page类到\ThinkPHP\Library\Org\Util文件夹下,修改



3、Model

public function searchAdmin($limit, $word) {$where['Admin_RealName|Admin_Name|Admin_Tele|Admin_Email|Admin_Dep|Admin_FirstDep|Admin_SecondDep'] = array('like', "%$word%");$rs['count'] = $this->where($where)->count();$Page = new \Org\Util\Page($rs['count'], $limit);$rs['list'] = $this->where($where)->limit($Page->firstRow . ',' . $Page->listRows)->select();$map = array();$map['searchPara'] = $word;foreach ($map as $key => $val) {$Page->parameter[$key] = urlencode($val);}$rs['page'] = $Page->show();return $rs;}


4、js

$('.btn').click(function() {if ($("#searchPara").attr("value") == "" || $("#searchPara").attr("value") == null) {alert('请输入关键词!');$("#searchPara").focus();} else {var action = $('form').attr('action');var val = $('input[type=text]').val();$.get(action,{searchPara:val},function (data) {$('#table2').empty();$('.fenye').empty();$('#table2').html(data);});}});function fun(obj) {$("#table2").load(obj.href);    return false;  }


纠结了三天成果,搜了很多但发现很少人遇到这样的问题,没用ajax+php分页是因为感觉比较麻烦,还是结合tp的分页类


0 0