• 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的分页类


  • 相关阅读:
    mysql.pas
    mysql 动态创建(删除)数据库,表
    界面美化(来自网络)
    串口的一点知识(摘抄)
    移位操作
    快速排序
    oracle和sqlserver互訪
    ASP.NET 无法向会话状态服务器发出会话状态请求 错误的解决方法
    去除 word requirements 工具条
    C# 控件预处理键盘命令
  • 原文地址:https://www.cnblogs.com/fighterhit/p/6387933.html
Copyright © 2020-2023  润新知