• thinkphp对于ajax的调用及session的用法


    一、ajax对于php是非常实用的一种方法,那么在thinkphp框架中ajax是不是一样好用呢?答案是肯定的。thinkphp针对ajax也有自己独特的用法:

    首先我们在自己建的Admin文件下建立一个Index文件夹,然后在这个文件夹里边建一个ceshi.html文件,要用ajax就要用到jquery文件,所以我们要将jquery文件复制到Public文件夹下进行调用:

    <!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方法:

    <?php
    namespace AdminController;
    use ThinkController;
    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);//调该方法返回数据
            }
        }

    看一下结果:

    这就是thinkphp中ajax的用法,非常方便实用。

    二、session在thinkphp中的使用,用于验证用户是否登录:

    在thinkphp中session不用手动开启,默认就是开启的:

    首先在Cotroller文件夹内建一个LoginController.class.php

    <?php
    namespace HomeController;
    use ThinkController;
    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:

    <!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:

    <?php
    namespace HomeController;
    use ThinkController;
    class BaseController extends Controller{
        public function __construct(){
            //调用父类构造
            parent::__construct();
            //写session控制
            if(session("?uid")){
            }else{
                $this->redirect("Login/login");
            }
        }
    }

    然后我们其他所有的控制器都继承新建的这个BaseController就可以了:

    <?php
    namespace AdminController;
    use HomeControllerBaseController;
    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
            }
                }
  • 相关阅读:
    Papervision3D Essentials中文版,附Papervision3D_2.1.920.swc和章节练习源码
    谷歌Chrome浏览器上安装调试(debugger)版本的Flash Player
    Flash运行时错误代码解释说明
    XML
    Android手机与电脑互通
    mysql
    j2ee
    Linux
    C_obj
    maven
  • 原文地址:https://www.cnblogs.com/mengshenshenchu/p/7137769.html
Copyright © 2020-2023  润新知