thinkphp對於ajax的調用及session的用法

1、ajax對於php是很是實用的一種方法,那麼在thinkphp框架中ajax是否是同樣好用呢?答案是確定的。thinkphp針對ajax也有本身獨特的用法:php

首先咱們在本身建的Admin文件下創建一個Index文件夾,而後在這個文件夾裏邊建一個ceshi.html文件,要用ajax就要用到jquery文件,因此咱們要將jquery文件複製到Public文件夾下進行調用:html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<script src="__ROOT__/Public/js/jquery-3.2.0.min.js">//調用jquery</script>
</head>

<body>
    <select id ="leibie">
    </select>
</body>
<script>
    $.ajax({
        url:"__CONTROLLER__/shuju",
        dataType:"JSON",
        success:function(data){
            var str = "";
            for( var k in data){
                str = str+"<option value='"+data[k].lbid+"'>"+data[k].lbname+"</option>";
            }
            $("#leibie").html(str);
        }
    })
</script>
</html>

而後咱們在Controller文件夾內新建一個IndexController.class.php的文件,在裏邊添加ceshi方法和shuju方法:jquery

<?php
namespace Admin\Controller;
use Think\Controller;
class IndexController extends Controller{
    public function index(){
        echo "歡迎使用Thinkphp";
    }
        public function ceshi(){
            $this->show();
        }
        public function shuju(){
                $n = M("leibie");//建立leibie表模型
                $arr = $n->select();
                $this->ajaxReturn($arr);//調該方法返回數據
        }
    }

看一下結果:ajax

這就是thinkphp中ajax的用法,很是方便實用。thinkphp

2、session在thinkphp中的使用,用於驗證用戶是否登陸:php框架

在thinkphp中session不用手動開啓,默認就是開啓的:session

首先在Cotroller文件夾內建一個LoginController.class.php框架

<?php
namespace Home\Controller;
use Think\Controller;
class LoginController extends Controller{
    public function login(){
        if(empty($_POST)){
            $this->show();
        }
        else{
            $uid = $_POST["uid"];
            $pwd = $_POST["pwd"];
            $n=M("users");
            $arr = $n->find($uid);
            if($arr["pwd"]==$pwd && !empty($pwd)){//驗證密碼
                session("uid","$uid");
            }
            else{
                echo "登陸失敗";
            }
        }
    }
}

而後在View文件夾下新建一個login.html:post

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<script src="__ROOT__/Public/js/jquery-3.2.0.min.js"></script>
</head>

<body>
  <h1>登陸頁面</h1>
    <form action="__ACTION__" method="post">
        <div>用戶名:<input type="text" name="uid"></div>
        <div>密碼:<input type="password" name="pwd"></div>
        <input type="submit" value="登陸">
    </form>
</body>
</html>

 而後最關鍵的是須要創建一個父類BaseController.class.php:ui

<?php
namespace Home\Controller;
use Think\Controller;
class BaseController extends Controller{
    public function __construct(){
        //調用父類構造
        parent::__construct();
        //寫session控制
        if(session("?uid")){
        }else{
            $this->redirect("Login/login");
        }
    }
}

而後咱們其餘全部的控制器都繼承新建的這個BaseController就能夠了:

<?php
namespace Admin\Controller;
use Home\Controller\BaseController;
class IndexController extends BaseController{
    public function index(){
        echo "歡迎使用Thinkphp";
    }
        public function ceshi(){
            $this->show();
        }
        public function shuju(){
                $n = M("leibie");//建立leibie表模型
                $arr = $n->select();
                $this->ajaxReturn($arr);//調該方法返回數據,若是是字符串,後邊加eval
        }
            }
相關文章
相關標籤/搜索