超恶心的TP模版取值
一、JS事件中
在使用H-uiAdmin做后台开发的时候,碰到了使用元素点击触发js函数展示弹窗的写法
但是在js函数中还需要使用U函数生成url以及使用$vo.id来传值
反复试了一下模版标签的写法 全部扑街
穷则思变,投降了,选择了混写的写法,郁闷
有点描述不清楚,具体看高亮红色内容
<foreach name="consultions" item="vo">
<tr class="text-c">
<td><input type="checkbox" value="{<$vo.id>}" name=""></td>
<td>{<$vo.id>}</td>
<td class="text-l"><u style="cursor:pointer" class="text-primary" onClick='article_view("查看","<?=U("Backend/Consultion/view","id=$vo[id]")?>")' title="查看">{<$vo.title>}</u></td>
<td>{<$vo.thumb>}</td>
<td>{<$vo.source>}</td>
<td>{<$vo.updatetime>}</td>
<td>{<$vo.view>}</td>
<td>{<$vo.collection>}</td>
<td class="td-status"><span class="label label-success radius">已发布</span></td>
<td class="f-14 td-manage"><a style="text-decoration:none" onClick="article_stop(this,'10001')" href="javascript:;" title="下架"><i class="Hui-iconfont"></i></a> <a style="text-decoration:none" class="ml-5" onClick="article_edit('资讯编辑','article-add.html','10001')" href="javascript:;" title="编辑"><i class="Hui-iconfont"></i></a> <a style="text-decoration:none" class="ml-5" onClick="article_del(this,'10001')" href="javascript:;" title="删除"><i class="Hui-iconfont"></i></a></td>
</tr>
</foreach>
2018.04.08补充;
后来查看编译文件,发现之所以正常的{:U}无法解析变量是因为单引号的问题,所以上述问题还有一个简单点的解决方案
1 <foreach name="consultions" item="vo">
2 <tr class="text-c">
3 <td><input type="checkbox" value="{<$vo.id>}" name=""></td>
4 <td>{<$vo.id>}</td>
5 <td class="text-l"><u style="cursor:pointer" class="text-primary" onClick='article_view("查看","{<:U("Backend/Consultion/view","id=$vo[id]")>}")' title="查看">{<$vo.title>}</u></td>
6 <td>{<$vo.thumb>}</td>
7 <td>{<$vo.source>}</td>
8 <td>{<$vo.updatetime>}</td>
9 <td>{<$vo.view>}</td>
10 <td>{<$vo.collection>}</td>
11 <td class="td-status"><span class="label label-success radius">已发布</span></td>
12 <td class="f-14 td-manage"><a style="text-decoration:none" onClick="article_stop(this,'10001')" href="javascript:;" title="下架"><i class="Hui-iconfont"></i></a> <a style="text-decoration:none" class="ml-5" onClick="article_edit('资讯编辑','article-add.html','10001')" href="javascript:;" title="编辑"><i class="Hui-iconfont"></i></a> <a style="text-decoration:none" class="ml-5" onClick="article_del(this,'10001')" href="javascript:;" title="删除"><i class="Hui-iconfont"></i></a></td>
13 </tr>
14 </foreach>
二、<if>标签中 的变量
如下代码中的高亮绿的,在if标签中习惯使用 . 来取数组织,但是条件完全不触发
<foreach name="cates" item="vo">
<eq name="vo.level" value="2">
<if condition="$vo.id==$product.cateid">
<option value="{<$vo.id>}" selected>{<:str_repeat(" ",$vo['level']-1)>}{<$vo.name>}</option>
<else/>
<option value="{<$vo.id>}" >{<:str_repeat(" ",$vo['level']-1)>}{<$vo.name>}</option>
</if>
<else/>
<option value="{<$vo.id>}" disabled><b>{<:str_repeat(" ",$vo['level']-1)>}{<$vo.name>}</b></option>
</eq>
</foreach>
后来看了编译文件才发现

如果是这样的话,对于PHP而言肯定是语法错误,所以直接改成如下
<foreach name="cates" item="vo">
<eq name="vo.level" value="2">
<if condition="$vo['id']==$product['cateid']">
<option value="{<$vo.id>}" selected>{<:str_repeat(" ",$vo['level']-1)>}{<$vo.name>}</option>
<else/>
<option value="{<$vo.id>}" >{<:str_repeat(" ",$vo['level']-1)>}{<$vo.name>}</option>
</if>
<else/>
<option value="{<$vo.id>}" disabled><b>{<:str_repeat(" ",$vo['level']-1)>}{<$vo.name>}</b></option>
</eq>
</foreach>
三、JS中的变量,如何在U函数中使用
如图所示:在特殊情况下遇到这种问题,js通过计算得到变量str,而改变量需要传递到控制器
最开始的想法是像正常的字符串连接一样来处理(如下图)

但是看了编译文件之后,问题就出来了

显然js的变量无法在PHP脚本中使用
反复尝试之后,发现如下写法:

总结:多看看编译文件.....
超恶心的TP模版取值的更多相关文章
- 【freemaker】之自定义变量,特殊变量 globals ,循环对象取值
entity public class Employee { private Integer id; private String name; private Integer age; private ...
- 【freemaker】之循环,判断,对象取值
entity: public class Employee { private Integer id; private String name; private Integer age; privat ...
- lr参数化取值与连接数据库
TXT文本,EXCEL表格以及数据库中的表都可以作为参数的数据集载体,LR都是支持的. 特别提醒: 1.在形成数据池之后,数据库中的数据变化不会影响数据池中的数据. 2.数据文件一定要以一个空行结束, ...
- 参数化取值策略Unique
Unique:主要是强调取值的唯一性,如果到最后没有该值了,LR提供了其他解决方案,如图所示: 此处的下拉列表中提供了三种方式,具体如下: About Vuser,当取值次数超过参数的行数时,忽略脚本 ...
- Angular2+之使用FormGroup、FormBuilder和Validators对象控制表单(取值、赋值、校验和是否可编辑等)
1.要使用Angular自带的表单控制需要先引入相关模块(.ts文件): import { FormGroup, //表单对象类 FormBuilder, //表单生成工具类 Validators} ...
- 如何解决流程开发中SheetRadioButtonList页面取值问题
分享一个常见的取值问题. 应用场景: SheetRadioButtonList控件,点击其中一项执行事件操作.如果是页面加载的情况下,值就无法取到. 具体原因如下: 我给SheetRadioButto ...
- jQuery radio的取值与赋值
取值: $("input[name='radioName']:checked").val(); 赋值: $("input[name='radioName'][value= ...
- python通过函数改变变量取值
严格讲应该是"通过函数调用,改变引用对象".python中,要区分"变量名"和"对象" 如果是类的对象,是引用类型的,那么可以通过函数调用, ...
- jsf初学selectOneMenu 绑定与取值
jsf 的selectOneMenu 最后生成的<select>标签.这里涉及到一个binding 起初一直不知道是干嘛的,后来参考了其他文章.就相当于在asp.net 中如:<as ...
随机推荐
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉 ...
- 石家庄铁道大学课程信息管理系统(javaWeb+servlet+Mysql)
实现网页版的课程管理系统,具有增删改查的功能. 1.首先连接数据库,具体数据库的使用及如何连接eclipse,参考 https://blog.csdn.net/lrici/article/de ...
- HTTPS(SSL / TLS)免费证书申请及网站证书部署实战总结
服务器环境:windows server 2008 + tomcat7 废话不多说,先看部署效果: 一.免费证书申请 Let's Encrypt 简介:let's Encrypt 是一个免费的开 ...
- Django-debug-toolbar的使用
Django项目的开发过程中,离不开各种调试,那么,我们今天介绍一个工具,django debug toolbar,该工具为我们提供了更加丰富的调试信息,如提供session信息,SQL查询信息等等. ...
- docker性能测试
测试环境: 操作系统:CentOS7.openstack nova-docker启动的centos7.openstack环境启动的centos7虚拟机 CPU:Intel(R) Xeon(R) CPU ...
- Python 用户交互程序Input
1.用户交互,用户输入 用户输出命令是input. 设置一个变量并输出. name = input("name:") print(name) 注:python2 下 raw_inp ...
- 谷歌技术"三宝"之GFS
题记:初学分布式文件系统,写篇博客加深点印象.GFS的特点是使用一堆廉价的商用计算机支撑大规模数据处理. 虽然"The Google File System " 是03年发表的老文 ...
- resmgr:cpu quantum 等待事件 top 1
早上看昨天现场的报告,发现晚上七八点,resmgr:cpu quantum 等待事件排在i第一位,如下: 该事件是和资源管理相关的,如果启用资源管理计划,就可能遇到这个问题. 所以常规的解决方案是禁用 ...
- Nginx配置SSL证书实现https访问「浏览器未认证」
http 和 https 介绍 http:应用最广泛的一种网络协议,是一个B/S的request和response的标准,用于从www服务器传输超文本到本地浏览器的传输协议. https:以安全为目标 ...
- Vue常见组件
每一个组件都是一个vue实例 每个组件均具有自身的模板template,根组件的模板就是挂载点 每个组件模板只能拥有一个根标签 子组件的数据具有作用域,以达到组件的复用 根组件 <div id= ...