thinkPHP -- 用户名验证、数据分页

用户名验证:  用Ajax 和 js
html中 Ajax 将输入框中的值 传入PHP文件, 和数据库中的值进行匹配,用Ajax的回调将结果回调到html文件中,
html再用js改变提示信息
//blur鼠标离开时的方法jq方法
//jq获取用户名输入框的标签
$('#name').blur() 
html文件中
获取input内容
$(this).attr(‘value’); // 获取某个元素的属性值
 

 
头尾分离
文档:8.7包含文件
<include file="header" />
<!— <include file=“Public:header”/>  不常用-->
$this->display('Public:footer');
              Tpl下的文件  文件中的内容
常用的是:
public function view($nameFun){
    $this->display('Public:header');
    $this->display($nameFun);
    $this->display('Public:footer');
}
 

循环标签 <foreach></foreach> 
<foreach name="result" item="val">
(循环体)
</foreach>
 

标签赋值
{$_SESSION.admin.name}
相当于—  <?php echo $?_SESSION.admin.name>
重定向
// 重定向 在user控制器用product控制器的index方法
$this->redirect('product/index');
获取数据
//        $model = M('Product');
//        $result = $model->select();
//        // 传值给模板页面
//        $this->assign('result',$result);
 
数据分页
 $model = M('Product'); // 实例化User对象
//        import('ORG.Util.Page');// 导入分页类
        $count = $model->count();// 查询满足要求的总记录数
        $Page  = new Page($count,2);// 实例化分页类 传入总记录数和每页显示的记录数
        $show  = $Page->show();// 分页显示输出
        // 进行分页数据查询 注意limit方法的参数要使用Page类的属性
        $list = $model->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
        $this->assign('result',$list);// 赋值数据集
        $this->assign('page',$show);// 赋值分页输出
        $this->view(); // 输出模板
优化后:
// 第一步: 导入三方库
        // // 支持Ajax的分页功能
        import("ORG.Util.AjaxPage");
        $model = M('Product'); // 实例化Product对象
// 第二步: 创建对象, 指定对象执行的方法
        $count = $model->count();// 查询满足要求的总记录数
        $Page  = new AjaxPage($count,2, "productPage");// productPage 是调用js中方法, 通过该方法给js传递页码值
        $show  = $Page->show();// 分页显示输出
        // 进行分页数据查询 注意limit方法的参数要使用Page类的属性
        $list = $model->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
// 第三步: 判断是不是Ajax
        if (!$this->isAjax()){
            $this->assign('result',$list);// 赋值数据集
            $this->assign('page',$show);// 赋值分页输出
            $this->view('index'); // 输出模板
        }else{
            $data['result']=$list;
            $data['page']=$show;
            // 返回给Ajax
            $this->ajaxReturn($data);
        }
局部刷新
需要用到Ajax
<script>
  function productPage(id) {
     // 拼接url         控制器/方法 / 参数/参数值       
    var url '__APP__/product/index/p/'+id;
    $.get(urlfunction (content) {
      // 重写html代码
      // pagination div重写
      // 将json转成对象类型
      var data eval('('+content+')'); // 强制将json转成对象类型
      $('.pagination').html(data.page);
      var l ‘'; // l拼接的局部刷新部分标签的字符串
      for (var i=0;2;i++) {
       += '<tr><td><input type="checkbox"/></td>';
       += '<td>'+data.result[i]['id']+'</td>';
       += ' <td><a href="#" title="title">'+data.result[i]['name']+'</a></td>';
       += '<td>'+data.result[i]['price']+'</td>';
       += '<td>'+data.result[i]['count']+'</td>';
       += '<td><a href="__APP__/product/updata/id/';
       += data.result[i]['id'];
       += '" title="Edit"><img src="__ROOT__/__PUBLIC__/resources/images/icons/pencil.png" alt="Edit" /></a>';
       += '<a href="__APP__/product/delete/id/';
       += data.result[i]['id'];
       += '" title="Delete"><img src="__ROOT__/__PUBLIC__/resources/images/icons/cross.png" alt="Delete" /></a>';
       += '<a href="__APP__/product/addFun" title="Edit Meta"><img src="__ROOT__/__PUBLIC__/resources/images/icons/hammer_screwdriver.png" alt="Edit Meta"/></a></td></tr>';
        alert(l);
        $('#tbodyn').html(l);
    }
    });
  }
</script>
posted @ 2016-12-12 08:57  菜菜7猜猜  阅读(420)  评论(0编辑  收藏  举报