ThinkPHP框架下使用cookie技术实现二级页面的页面传值

引言

开发web项目中,有时我们会遇到这样的需求:

  • 一级页面需要向二级子页面传递一个参数
  • 一级页面要传递的参数并不在后台,在页面DOM结构内
  • 传递的参数不希望在url中显示出来,也就是说GET方法不适用的时候

在以上三种情况下, 我们该怎么做呢?下面我来提供一种方法或者思路,使用cookie技术来完成上述所说的3个需求。

思路

这里写图片描述
这里页面传值的原理是通过加密的文件流(cookie文件实质上就是由浏览器客户端管理的加密文件,用来识别用户)来实现的。配合以ajax技术,向服务器传递参数请求后台处理数据,后台将参数写入cookie加密文件中,然后后台就可以随意使用这个参数了。我们知道cookie是有浏览器管理的,对用户是黑盒,所以我们只要使用接口就可以了,这可以简化代码。
【PS】这里需要用到ajax技术向后台请求数据处理,我们知道ThinkPHP框架是一个后台渲染的框架,采用经典MVC模式,所有业务逻辑处理都在controller里进行。

DEMO

Ajax:

 $(document).ready(function(){
        $("a#ToNext").click(function(){
        //JS的DOM操作,获取到id=ToNext的a标签的值
            var id = $(this).attr("class");
            //jQuery ajax的$.post方法
            //参数1:请求url地址 参数2:携带的参数  参数3:回调函数
            $.post("{:U('Admin/superAdminPassValue')}",{
                data : id
            },function(data){
                if(data == 'success'){
                //若cookie加密成功,则调二级页面
                    window.location.href = "{:U('Admin/superAdminUserFindNext')}";
                }else if(data == 'cookiefail'){
                    window.location.href = "{:U('Index/index')}";
                }
            });
        });
    });

PHP:superAdminPassValue.class.php片段

public function superAdminPassValue(){
        $id = cookie('login_id');
        if($id != ''){
            if($_PSOT['data'] == 'return'){
                cookie('specific_id',null);
                $this->ajaxReturn("success");
            }else{
            //这里对应POST的key值为$.post方法中的第二个参数的key值data
                $user_id = $_POST['data'];
                //这是ThinkPHP框架的cookie函数
                cookie('id',$user_id,array('expire'=>3600*3,'prefix'=>'specific_'));
                $this->ajaxReturn('success');
            }
        }else{
            cookie('login_id',null);
            $this->ajaxReturn('cookiefail');
        }
    }

ThinkPHP中有关cookie的创建、获取、和删除可以去查阅学习ThinkPHP3.2.3教程。

如何在后台其他地方获取此加密cookie项:

$userid = cookie('specific_id');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

angelavor

觉得有收获,给我个三连吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值