Thinkphp

1.ThinkPHP可以很好的支持AJAX请求,系统的\Think\Controller 类提供了ajaxReturn方法用于AJAX调用后返回数据给客户端。并且支持JSON、JSONP、XML和EVAL四种方式给客户端接受数据,并且支持配置其他方式的数据格式返回。

//登录类
/*1.首先判断该操作是以get方式提交还是以post提交,post提交会得到页面输入的学号和密码,
2.判断验证码和学号密码是否正确,以ajax方式返回数据,好处是:页面不刷新执行了数据库的查询信息
3.ajaxReturn的三个参数ret:boolean布尔型前台判断条件,msg:前台的消息,url:跳转路径*/

public function login(){

        if(IS_GET){
            $this->display();
        }else if(IS_POST){
            // echo "sagg";
            // exit;
            $where['no'] = I('post.no');
            $where['password'] = md5(I('post.password'));
            // dump($where);
            // exit;
            $yzm = I('post.yzm');
            $model = M('student');
            $student = $model->where($where)->select();
            // dump($student);
            // exit;
            if($student){
                $verify = new \Think\Verify();
                if(!$verify->check($yzm)){
                    $this->ajaxReturn(array('ret'=>false,'msg'=>'验证码输入不正确','url'=>U("index/login")));
                    exit;
                }else{
                    $this->ajaxReturn(array('ret' =>true , 'msg'=>'登录成功','url'=>U("index/studentlist")));
                }
                
            }else{
                 
                 $this->ajaxReturn(array('ret' =>false , 'msg'=>'用户名或密码错误,登录失败','url'=>U("index/login")));
            }
        }
    }

//thinkphp框架中的分页效果
public function studentlist($p='1'){
        $pagesize = 10;//每页的记录数
        $model = M('student');
        $data = $model->field('no,name,sex')->page("{$p},{$pagesize}")->select();//查询数据库中的记录
        $count = $model->count();//查询数据库中一共多少条记录
        $page = new \Think\Page($count,$pagesize);
        $page->lastSuffix=false;
        $page->setConfig('prev','上一页');
        $page->setConfig('next','下一页');
        $page->setConfig('last','末页');
        $page->setConfig('first','首页');

        $page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
        $show = $page->show();
        // $student = $model->field('no,name,sex')->page("{$p},{$pagesize}")->select();
        $this->assign('page',$show);
        // $this
        $this->assign('data',$data);
        $this->display('test');
    }

//thinkphp框架上传csv文件以及追加数据到数据库中操作方法
public function upload(){
      if(IS_GET){
        $this->display();
        exit;
      }
      $upload = new \Think\Upload();
      $upload->maxSize =0;//上传文件的大小 0是不限制大小
      $upload->exts = array('csv','png','jpg','jpge');//设置上传文件格式不是该格式上传失败
      $upload->rootPath = './Public/Upload/';
      $upload->savePath = '';
      $info = $upload->upload();//false上传失败
      if(!$info){
        $this->error($upload->getError());//上传失败的错误原因
      }else{
        // $this->success('上传成功!');
        echo "上传成功";
        $this->import($upload->rootPath . $info['file']['savepath'].$info['file']['savename']);//上传文件保存的完整路径  
      }
    }
    public function import($file){
      // $file = "./Public/Upload/2018-03-22/5ab365ab3c15f.csv";
      $encoding = detect_ecoding($file);//调用detect_ecoding方法得到文件编码格式
      // dump($encoding);
      // exit;
      if($encoding != 'UTF-8'){//对编码格式进行判断以及改为utf-8格式
        $contens = file_get_contents($file);
        
        $contens = mb_convert_encoding($contens,'UTF-8',$encoding);
// dump($contens);
//       exit;
        file_put_contents($file,$contens);
      }


      $fp = fopen($file,'r');
      if($fp){
        $fields = array('no','name','sex');
        $model = M('newstudent');
        $arr = array();
        $arrayNo = $model->getField('no',true);//得到数据库中已有的学生学号
        // dump($arrayNo);
        // exit;
        while(($row = fgetcsv($fp,1000,','))!==false){
          // $temp = 
          // dump($row);
          // exit;
          $row = array_combine($fields, $row);
          // dump($row['no']);
          // exit;
          $ret = in_array($row['no'],$arrayNo);
          // dump($ret);
           // exit;
          if($ret){//得到布尔型值判断数据库中是否已有改学号
            // array_push($arrayNo, $row['no']);如果有提示学号已存在 
            echo $row['no']."已存在";
            echo "<br>";
            
          }else{
            array_push($arrayNo, $row['no']);//否则放入二维数组中添加数据
            $arr[] = $row;
          }
          // dump($arr['no']);
          // exit;
          if(count($arr)==1000){
            $model->addAll($arr);
          unset($arr);
          }
          
        }
        if(count($arr)>0){
        $model->addAll($arr);
      }
      $this->show('添加成功','utf8');
      }
       
    }


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值