超恶心的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 ...
随机推荐
- VUE中的v-show和v-if
v-show="判断条件" 显示或隐藏 v-show占位置 v-if 隐藏(不占位置)
- Gitlab安装以及汉化
Gitlab安装以及汉化 系统环境: CentOS 7.5 IP:192.168.1.2 关闭selinux.firewalld gitlab-ce-10.8.4 rpm包:下载地址 一.下载并安装g ...
- vue的一些感想
如今vue2.0是主流,但是它的路由确实直接从1.0过来的,其中包括组件包括全局组件和局部组件,写好组件之后,我们就需要 使用路由,将组件关联起来,关联起来之后,然后我们才可以将组件的内容通过hash ...
- mybatis常见问题和错误
1. jdbc java type 映射关系 1) mysql的text 在mybatis中使用varchar类型 2. mybatis常见的错误 3.There is no getter for p ...
- 反向代理&集线器和交换机的区别&广播地址&seq与ack的区别
反向代理服务器: 当一个代理服务器能够代理外部主机访问内部网络时,这种代理服务的方式称为反向代理服务,该服务器被称为反向代理服务器. 集线器与交换机的区别: 集线器和交换机都是起到端口转发的作用,不同 ...
- hdu4916 Count on the path
调了好久.... •把树视为以1为根的有向树,然后将1删除 •原树变为一个森林,并且任一棵树的根节点均为原树中1的子节点 •只需要考虑最小编号前3小的三棵树 •记f[x][y]为去掉x和y两棵树后的最 ...
- numpy linalg模块
# 线性代数# numpy.linalg模块包含线性代数的函数.使用这个模块,可以计算逆矩阵.求特征值.解线性方程组以及求解行列式等. import numpy as np # 1. 计算逆矩阵# 创 ...
- sublime Text 正则表达式功能使用介绍
sublime Text 正则表达式功能使用介绍 1.打开sublime Text ,然后按 CTRL+H打开替换面板 2.如下图,勾选正则表达式功能,然后填上正则表达式和替换内容. 3.替换后结果如 ...
- Docker Compose 介绍安装
Compose介绍 Compose是一个定义和管理多容器的工具,也是一种容器编排工具,前身是Pig,使用Python语言编写.使用Compose配置文件描述多个容器应用的架构,biubiu使用什么镜像 ...
- Idea 提交代码到码云(提交到github也大同小异)
1.首先下载安装git,下载地址https://git-scm.com/download/win.按默认选择安装即可,不成功的自行百度 2.安装完成后双击git.exe,调出命令界面(此处需要自己去申 ...