tp5.20框架中AJAX无刷新分页及搜索
控制器:
1 // 获取数据 2 public function index() 3 { 4 $data = Db::table('query')->paginate(5); 5 return json($data); 6 } 7 8 9 // 显示展示页 10 public function show(){ 11 return view('index'); 12 }
1 public function search(){ 2 $search = input('search'); 3 $data = Db::table('query')->where('title','like',"%$search%")->select(); 4 if ($data){ 5 return json($data); 6 }else{ 7 return json("搜索条件不存在"); 8 } 9 10 } 11 12 public function sort(){ 13 $data = Db::table('query')->order('id','desc')->select(); 14 return json($data); 15 } 16 17 public function login(){ 18 $code = input('code'); 19 $nickName = input('nickName'); 20 21 $appid = "wxc5de25084db9570a"; 22 $sessionid = "a83f88588c840b8d54519aafdd726be5"; 23 $url = "https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$sessionid&js_code=$code&grant_type=authorization_code 24 "; 25 // 获取openid 【加true转数组】 26 $data = json_decode(file_get_contents($url),true); 27 // 判断表中是否有openid 28 $arr = Db::table('user')->where('openid',$data['openid'])->find(); 29 if ($arr){ 30 return json(['code'=>'200','msg'=>'success','data'=>null]); 31 } 32 33 $user = [ 34 'nickname' => $nickName, 35 'sessionkey' => $data['session_key'], 36 'openid' => $data['openid'] 37 ]; 38 $res = Db::table('user')->insert($user); 39 $id = Db::getLastInsID(); 40 return json(['code'=>'200','msg'=>'success','data'=>$id]); 41 }
html中:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script> <meta name="referrer" content="no-referrer" /> <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script> <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script> </head> <body> <div id="ctn"> <p @click="order">降序</p> <div class="box" v-for="vo in info"> <p class="blockquote"> <u>{{vo.title}}</u> </p> <div> <div> <p> {{vo.text}} </p> </div> </div> </div> <div> <form action=""> <input type="text" name="search" id="search"> <input type="button" @click="form" value="搜索"> </form> </div> <!--页数--> <ul class="pagination"> <li v-for="i in pageCount" @click="click(i)"> {{i}} </li> </ul> </div> </body> </html> <script> new Vue({ // 挂载点 el: '#ctn', // 声明数据源 data: { info: [ ], // 总页数 pageCount:"", }, mounted() { this.click(1); }, methods:{ click:function (i) { axios .get("http://www.movie.1808a.com/admin/index/index?page="+i) .then(response => ( this.info = response.data.data, this.pageCount = response.data.last_page )) }, form:function () { var search = $("#search").val(); axios .get("http://www.movie.1808a.com/admin/index/search?search="+search) .then(response => ( this.info = response.data // console.log(response.data) )) }, order:function () { axios .get("http://www.movie.1808a.com/admin/index/sort") .then(response => ( this.info = response.data )) } } }) </script>

浙公网安备 33010602011771号