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

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

 <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类到ThinkPHPLibraryOrgUtil文件夹下,修改



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 OrgUtilPage($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的分页类


原文地址:https://www.cnblogs.com/fighterhit/p/6387933.html