网站首页 手机版
 注册 登录
您现在的位置: 畅无忧设计 >> 网站建设 >> 动易专区 >> SiteWeaver教程 >> 正文
最新文章
· SiteWeaver系统结构功能概述
· SiteWeaver数据表列表
· IE8正式版下Siteweaver后台编辑器无效
· 在自定义标签中运用js
· SiteWeaver会员登录调用方法
· 生成html或刷新栏目JS时提示“写入文
· 实现文章中出现的关键字自动加亮加连
· 搜狐flash幻灯片标签
· SiteWeaver6.8无限级树形导航标签
· SiteWeaver CMS转换升级为SiteWeaver
热门文章
 动易SiteWeaver版自定义动态标签、
 生成html或刷新栏目JS时提示“写入
 文章自定义列表标签【ArticleList】
 SiteWeaver 6.8会员模板使用说明
 SiteWeaver数据表列表
 FLV视频插件 for SW系列
 在自定义标签中运用js
 Siteweaver模板对应的页面
 文章栏目页标签【ArticleList_Chil
 实现文章中出现的关键字自动加亮加
相关文章
自定义标签的参数传递注意事项
用自定义标签获取当前文章的链接地址
解决方法--自定义标签中时间显示格式问题
自定义标签的参数传递注意事项
SiteWeaver 6.6针对自定义标签的一系列调
在自定义标签中运用js
来源:动易技术中心 更新时间:2011/7/16 21:58:49 阅读次数:
字体:[ ] 我要投稿

有时候我们在使用自定义标签的时候会遇到这样一个问题:我们已经找到这个字段在数据库里面的位置,并且已经成功将这个字段取出来了,可是这个字段并不是我们要的格式,下面看两个例子:

例子一:

  软件的下载地址是以字符串的方式存放的,然后在字符串中用分割符区分不同地址,比如说:"下载地址1|200710/20071022165122306.doc$$$下载地址2|http://www.163.com",如果我们想要把这两个下载地址输出来,那么就必须结合js才能首先了。下面我们来看一下如何解决这个问题。
  添加自定义函数标签如下:
  函数名:比如{MY_fenge}
  参数:一个,在下载内容页模板调用的时候为{MY_fenge({$SoftID})}
  查询语句:select  DownloadUrl from PE_Soft where SoftID={input(0)}
  标签内容:
{Loop} {Infobegin}
<script language="JavaScript">
var str="{$Field(0,Text,0,0,0)} "   //{$Field(0,Text,0,0,0)}为数据库中的下载地址,
  // 以"下载地址1|200710/20071022165122306.doc$$$下载地址2|http://www.163.com"为例

var str1=str.split("$$$")        //对下载地址进行第一次分割,按照$$$拆开,然后存放在数组str1中
 //str1[0]=下载地址1|200710/20071022165122306.doc
 //str1[1]=下载地址2|http://www.163.com.
var str2;          //定义一个新的数组,因为还需要第二次分割才能得出正确的地址.
for(i=0;i<str1.length;i++){            //这个循环是算出有多少个下载地址的,str1.length是数组的长度.
str2 = str1[i].split("|")         //第二次分割,也就是把str1[0]=下载地址1|200710/20071022165122306.doc
//再进行一次分隔,我们要取的是200710/20071022165122306.doc这个值
var count=i+1             //i是0开始的.所以这里加一,用来对下载地址进行编号.
//第二次分隔后,str2[0]=下载地址1,str2[1]=200710/20071022165122306.doc,str2[1]即我们要取的内容
document.write ("下载地址"+count+":<a href='"+str2[1]+"'>"+str2[1]+"</a><br>"); 
}
</script>
{Infoend} {/Loop}

前台显示的效果是:

下载地址1:200710/20071022165122306.doc
下载地址2:http://www.163.com

  这样,我们运用了js的split函数,成功的将这两个地址分隔出来,按照我们的要求输出。

例子二:

    我们需要取出供求频道的输出供求类型,可是数据库里面并不是直接存放供求类型名称,而是用相应的数字来表示相应的类型:0=供应  1=求购 2=紧急求购 3=合作 4=招商代理,在数据库中类似这种情况是比较多的,下面我们来看一下如何解决这个问题:

问题:

以下是我的函数标签:
<table>{Loop} {Infobegin}
    <tr>
      <td>{$Field(1,Num,0,0)}</td>    /**{$Field(1,Num,0,0)} 值为 0 1 2 3 4/**/
      <td>{$Field(2,Text,0,0,0)}</td>
    </tr>
{Infoend} {/Loop}
  </table>

  其中,<td>{$Field(1,Num,0,0)}</td>  这段为输出供求类型,类型共有四种 0 1 2 3 4 (0=供应  1=求购 2=紧急求购 3=合作 4=招商代理),而我想把得到的 0 1 2 3 4 转换成文字(如把0转换成供应),请问如何能做到?

 

解决方法:

图片形式:
先做几个图片,
<table>{Loop} {Infobegin}
    <tr>
      <td><img src="{$Field(1,Num,0,0)}.gif"></td>    /**{$Field(1,Num,0,0)} 值为 0 1 2 3 4/**/
      <td>{$Field(2,Text,0,0,0)}</td>
    </tr>
{Infoend} {/Loop}
  </table>

文字形式:
<table>{Loop} {Infobegin}
    <tr>
      <td>
<script language="JavaScript">
function greeting()
{
var today = new Date();
var hrs = {$Field(1,Num,0,0)};
document.writeln("<CENTER>");
if (hrs == 0)
document.write("供应");
else if (hrs == 1)
document.write("求购");
else if (hrs == 2)
document.write("紧急求购");
else if (hrs == 3)
document.write("合作");
else if (hrs == 4)
document.write("诚招代理");
}
greeting();
            </script> </td>
      <td>{$Field(2,Text,0,0,0)}</td>
    </tr>
{Infoend} {/Loop}
  </table>

  • 上一篇文章:
  • 下一篇文章:
  • 关于我们 - 联系我们 - 广告服务 - 在线投稿 - 友情链接 - 网站地图 - 版权声明
    CopyRight 2008-2010, CWYDESIGN.COM - 畅无忧设计, Inc. All Rights Reserved
    滇ICP备09005765号