• ThinkPHP框架:补充知识


    一、数据取值方式

    1.写一个方法,来进行数据的传值差别:正常的GET方式取值

    public function testget()
    {
        echo $_GET["name"];
    }
    

    在浏览器的地址栏地址中输入:

    (1)后面是:?名称="值"

    1.没有传值的话是空

    http://localhost/tp/index.php/Home/Home/testget

    输出就是空的:

    2.有值的传值

    http://localhost/tp/index.php/Home/Home/testget?name=%22%E4%BD%A0%E5%A5%BD%22

    这样就会输出:你好

    (2)后面是路径的方式:/名称/值

    地址栏中输入:

    http://localhost/tp/index.php/Home/Home/testget/name/qqqqqq

    输出结果

    注意:传多值就是/名字/值/名字/值

    2.给方法赋值的方式取值

    public function testget($code)
    {
      echo $code;      
    }
     

    二、session方法和cookie方法

    (1)session方法

    1.默认情况下,初始化之后系统会自动启动session,如果不希望系统自动启动session的话,可以设置SESSION_AUTO_START为false,例如:

    'SESSION_AUTO_START' =>false
    

     关闭自动启动后可以项目的公共文件或者在控制器中通过手动调用session_start或者session('[start]')启动session。

    2.session赋值

    session('name','value');  //设置session
    

     3.session判断

    // 判断名称为name的session值是否已经设置
    session('?name');
    

     4.session管理

    session('[pause]'); // 暂停session写入
    session('[start]'); // 启动session
    session('[destroy]'); // 销毁session
    session('[regenerate]'); // 重新生成session id
    

    (2)cookie方法

    Cookie设置

    cookie('name','value');  //设置cookie
    cookie('name','value',3600); // 指定cookie保存时间
    

    三、模板(三元运算)

    模板可以支持三元运算符

    {$status?'正常':'错误'}
    {$info['status']?$info['msg']:$info['error']}
    

     注意:三元运算符中暂时不支持点语法。

    四、AJAX返回

    要使用ajax就要引用jQuery了,我们把jQuery拿进来

    (1)我放到了Public文件夹下,新建一个js文件夹下

    (2)然后就是在显示的页面调出这个js文件

    <script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script>
    

    (3)看下这个文件是不是引入了

    在浏览器的地址栏中输入:http://localhost/tp/index.php/Home/Home/shouye

    查看源代码查看是不是引入了

    点开之后要是能够出现就是引入成功了

    (4)在控制器中写一个方法chuli,让ajax返回这个方法

    public function chuli()
    {
        
    }
    

     (5)写ajax

    <script type="text/javascript">
      $.ajax({
      url:"__CONTROLLER__/chuli",  //处理方法的
      dataType:"TEXT",
      success: function(data){
        //成功之后的输出的信息
        }
                 
      })
    </script>
    

     (6)在chuli方法页面就要写返回值了

    public function chuli()
    {
        $this->ajaxReturn("hello","eval");   //返回的值,返回值的方式eval就是text方式  
    }
    

     注意:如果是JSON/JSONP格式,会自动编码成JSON字符串,如果是XML方式,会自动编码成XML字符串,如果是EVAL方式的话,只会输出字符串data数据。 

    完整的显示页面的代码:

    <script type="text/javascript">
        $.ajax({
            url:"__CONTROLLER__/chuli",
            dataType:"TEXT",
            success: function(data){
                alert(data);  //返回的信息
                }
                 
        })
    </script>        
    

    看下效果:

    也可以是关联数组的数据

    五、跳转和重定向

    (1)页面跳转

    使用方法很简单

    $User = M('User'); //实例化User对象
    $result = $User->add($data);
    if($result){  
         //设置成功后跳转页面的地址,默认的返回页面是$_SERVER['HTTP_REFERER']   
        $this->success('新增成功', 'User/list');
    }
    else
    {    //错误页面的默认跳转页面是返回前一页,通常不需要设置   
        $this->error('新增失败');
    }
    

    注意:success和error方法的第一个参数表示提示信息,第二个参数表示跳转地址,第三个参数是跳转时间(单位为秒)

    // 操作完成3秒后跳转到 /Article/index
    $this->success('操作完成','/Article/index',3);
    // 操作失败5秒后跳转到 /Article/error
    $this->error('操作失败','/Article/error',5);
    

     注意:跳转地址是可选的,success方法的默认跳转地址是$_SERVER["HTTP_REFERER"],error方法的默认跳转地址是javascript:history.back(-1);

  • 相关阅读:
    BZOJ 3754 Tree之最小方差树
    【CSS】318- CSS实现宽高等比自适应容器
    【Vuejs】317- 提升90%加载速度——Vuecli下的首屏性能优化
    【H5】316- 移动端H5跳坑指南
    【每周小回顾】2- 一起回顾上周精彩内容
    【Webpack】315- 手把手教你搭建基于 webpack4 的 vue2 多页应用
    【Web技术】314- 前端组件设计原则
    【JS】313- 复习 回流和重绘
    【JS】312- 复习 JavaScript 严格模式(Strict Mode)
    【Canvas】311- 解决 canvas 在高清屏中绘制模糊的问题
  • 原文地址:https://www.cnblogs.com/zhaohui123/p/7159454.html
Copyright © 2020-2023  润新知