一、JS事件中

在使用H-uiAdmin做后台开发的时候,碰到了使用元素点击触发js函数展示弹窗的写法

但是在js函数中还需要使用U函数生成url以及使用$vo.id来传值

反复试了一下模版标签的写法   全部扑街

穷则思变,投降了,选择了混写的写法,郁闷

有点描述不清楚,具体看高亮红色内容

 

 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">&#xe6de;</i></a> <a style="text-decoration:none" class="ml-5" onClick="article_edit('资讯编辑','article-add.html','10001')" href="javascript:;" title="编辑"><i class="Hui-iconfont">&#xe6df;</i></a> <a style="text-decoration:none" class="ml-5" onClick="article_del(this,'10001')" href="javascript:;" title="删除"><i class="Hui-iconfont">&#xe6e2;</i></a></td>
13                     </tr>
14                 </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("&nbsp;&nbsp;&nbsp;&nbsp;",$vo['level']-1)>}{<$vo.name>}</option>
      <else/>
         <option value="{<$vo.id>}"  >{<:str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;",$vo['level']-1)>}{<$vo.name>}</option>
      </if>
   <else/>
      <option value="{<$vo.id>}" disabled><b>{<:str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;",$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("&nbsp;&nbsp;&nbsp;&nbsp;",$vo['level']-1)>}{<$vo.name>}</option>
      <else/>
         <option value="{<$vo.id>}"  >{<:str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;",$vo['level']-1)>}{<$vo.name>}</option>
      </if>
   <else/>
      <option value="{<$vo.id>}" disabled><b>{<:str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;",$vo['level']-1)>}{<$vo.name>}</b></option>
   </eq>
</foreach>

   

三、JS中的变量,如何在U函数中使用

   如图所示:在特殊情况下遇到这种问题,js通过计算得到变量str,而改变量需要传递到控制器

   最开始的想法是像正常的字符串连接一样来处理(如下图)

  

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

 

 显然js的变量无法在PHP脚本中使用

 反复尝试之后,发现如下写法:

 

 

总结:多看看编译文件.....

posted on 2018-03-16 11:24  沐霖Sicada  阅读(410)  评论(0编辑  收藏  举报