账号通
    

账号  

密码  

2530

查看

2

回复
主题:[已答复]$IF条件是否在out1out2中调用{SQL_XX} ? [收藏主题]  
刚刚 当前离线

1852

主题

5

广播

126

粉丝
添加关注
级别:版主

用户积分:7093 分
登录次数:225 次
注册时间:2010/7/6
最后登录:2024/4/15
刚刚 发表于:2016/2/5 12:09:49   | 显示全部帖子 查看该作者主题 楼主 
科汛在线考试系统(NET)
IF语句不支持放嵌套SQL标签

{$IF({$Field(child,Num,0,2)}>0||<ul>{SQL_顶部导航三_三级导航({$Field(id,GetInfoUrl,100,2)})}

这样使用是错的   IF语句是不会执行的  标签执行流程如下:
嵌套的如下SQL标签 是在IF执行后递归调用时才会执行
{SQL_顶部导航三_三级导航({$Field(id,GetInfoUrl,100,2)}

顶层标签解析到最后IF语句执行前  相应IF语句代码是这样的
{$IF(child值>0||<ul>{SQL_顶部导航三_三级导航({$Field(id,GetInfoUrl,100,2)})}</ul>||)}

这样是不符合IF语句正则的
{\$IF\([^{\$}]*}

看懂上面更好  看不懂也没必要过于深究  记住不支持这样使用就可以了


类似需求  应按统一规则做标签显示  然后利用JS判断情况做相应响应
{$IF({$Field(child,Num,0,2)}>0||<ul>{SQL_顶部导航三_三级导航({$Field(id,GetInfoUrl,100,2)})}</ul>||)}
可改成
<ul>{SQL_顶部导航三_三级导航({$Field(id,GetInfoUrl,100,2)})}</ul>


js判断<ul></ul>是否有childnodes然后作相应的响应处理
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.06250秒 powered by KesionCMS 9.0