超恶心的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 ...
随机推荐
- phpstudy如何安装ssl证书
网站上面部署ssl证书的站点越来越大,但有很多集成式的web服务器无法按照一般站点的配置来部署ssl证书,现在,卓趣科技就以集成式phpstudy为例(apache+mysql),为大家展示一下正确的 ...
- 更改linux终端中用户名颜色
用户名的设置在-下.bashrc文件中,更改PS1变量的值,如果没有就自己加一行 PS1='\[\e[32m\][\u@\h \W]#\[\e[m\] ' 32代表的是绿色前景色,\[\e[m\]是关 ...
- JS构造函数原理与原型
1.创建对象有以下几种方式: ①.var obj = {}; ②.var obj = new Object(); ③.自定义构造函数,然后使用构造函数创建对象 [构造函数和普通函数的区别:函数名遵循大 ...
- keepalived weight正负值问题(实现主服务器nginx故障后迅速切换到备服务器)
有两台负载均衡,lb01,lb02. lb02, priority值为100 编辑keepalived配置文件 vim /etc/keepalived/keepalived.conf ! Con ...
- Appium+python自动化1-环境搭建(上)
前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.小编擅长Python,所以接下来的教程是appium+py ...
- jquery单击事件的写法
方式一: //点击要素,修改URL $(document).on('click',"#modUrlYs" ,function (){ //$("#modUrlYs&quo ...
- SpringBoot整合shiro实现用户的认证授权
* 项目环境搭建 * 配置ShiroConfig,用于shiro的基本配置和注入自定义规则 * 实现自定义的realm,继承AuthorizingRealm * 编写测试controller和页面 基 ...
- tomcat的Server.xml详解和Host的配置
基于以下说法的领悟: 若只配appBase,不配Context 的docBase(appBase和docBase二选一就可以了),则appBase的每个文件夹里都代表一个应用,每个应用都必须放ROOT ...
- linux centos7添加ip黑名单禁止某个ip访问
centos7用的是firewall 添加单个黑名单只需要把ip添加到 /etc/hosts.deny 格式 sshd:$IP:deny vim /etc/hosts.deny 添加你要禁止的i ...
- BZOJ 2759 一个动态树好题(动态树)
题意 https://www.lydsy.com/JudgeOnline/problem.php?id=2759 思路 每个节点仅有一条有向出边, 这便是一棵基环内向树,我们可以把它在 \(\text ...