前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >My97DatePicker日期控件自定义脚本日期在ThinkPHP5下面报错

My97DatePicker日期控件自定义脚本日期在ThinkPHP5下面报错

作者头像
世纪访客
发布2018-08-02 15:49:39
9760
发布2018-08-02 15:49:39
举报
文章被收录于专栏:西枫里博客西枫里博客
...
...

最近一个项目又牵扯到日期限定的操作,在thinkPHP5下集成My97DatePicker过程中报了一个未定义变量:D的错误。一般性载入没问题,只有在自定义脚本日期上报错。很显然是冲突造成的。

问题场景复现。

使用My97DatePicker自定义脚本日期,做一个时间段的选择,起始时间为今日起,终止时间为未来某一天。两个日期选择框,对应两条规则,第一起始日期不能为过去的日期。第二起始日期不能大于终止日期。两条规则一限定就构成了一个选择范围。原本心想很简单,翻开My97DatePicker的demo,一顿拷贝,然后上述两条规则一定义,原本以为就这样完事了,如图:

未标题-1.jpg
未标题-1.jpg

页面一刷新,傻眼了,竟然报了一个未定义变量:D 的错误。

问题原因及查找。

第一反应未定义变量这是PHP的错误啊,博主写程序从来不会写单字母的变量的,所以问题肯定是刚刚的时间控件的问题。不过My97DatePicker是个纯js程序,哪来的PHP报错。于是就去查了下ErrorException(runtime目录下的temp目录中)。发现My97DatePicker中关于$dp.$D没有被正确编译,而是把D解析成了一个变量,看到这样的编译结果,顿时就明白了原因。如图:

未标题-2.jpg
未标题-2.jpg

很显然,因为ThinkPHP5的模版语法采用的是单花括号,而不是更常见的双花括号。TP5将$dp.$D解析成了变量,从而造成了这部分内容没有变My97DatePicker的js接管。

解决办法。

解决办法也很简单,如果仔细看过TP5的手册的话,在模版章节中关于变量输出中有这样一句话:{和$之间不能有任何空格,否则标签无效。

未标题-4.jpg
未标题-4.jpg

关于$dp.$D在My97DatePicker的demo中也给出了解释。

未标题-3.jpg
未标题-3.jpg

有了上面两个解释就好办了,只要使{$dp.$D}这个标签无效,就能达到目的,那么只需将#f{$dp.$D}中的{和$之前敲一个空格就妥了。最终效果如图:

未标题-5.jpg
未标题-5.jpg

再次刷新页面,就可以看到My97DatePicker空间被正常加载了,无任何错误。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题场景复现。
  • 问题原因及查找。
  • 解决办法。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档