thinkphp非前后端分离,动态实现web弹出层/框(thinkphp+layui.layer)

问题

在前后端分离的情况下ajax请求接口之后,可能需要弹出层提示用户错误信息(例如密码错误)。非前后端分离情况下,通常使用跳转新页面以显示错误信息。现有需求:非前后端分离情况下,实现弹出层提示信息且不遮挡原页面内容

原理

利用thinkphp $this->assign(); 将js脚本写入视图页面(类似xss),然后再js脚本里面使用layui.layer。

代码

控制器

protected function showMsg($msg){
        $jqueryFile = "<script src='".__ROOT__."/Public/jquery.js'></script>"; //引入js
        $layerFile = "<script src='".__ROOT__."/Public/layer/layer.js'></script>"; //引入 layer
        $layerScript = "<script>layer.msg('".$msg."');</script>";
        $this->assign('jqueryFile',$jqueryFile);
        $this->assign('layerFile',$layerFile);
        $this->assign('layerScript',$layerScript);
    }

视图({$layerScript}必须放在页面最后)
注意{$layerScript}必须放在页面最后
使用

public function index(){
	$this->showMsg("hello");
}

效果图
在这里插入图片描述
其他效果
A

$layerScript = "<script>var ii = layer.load();setTimeout(function(){layer.close(ii);}, 2000);</script>";

在这里插入图片描述
B

$layerScript = "<script>layer.open({type: 1,area: ['600px', '360px'],shadeClose: true,content: '\<\div style=\"padding:20px;\">自定义内容\<\/div>'});</script>";
        

在这里插入图片描述

layer下载地址 http://layer.layui.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值