织梦首页、列表页、文档页调用所有文档关键词
需求:
- 要求在首页、列表页、文档页能调用所有文档关键词,
- 并且点击进去能显示包含该关键词的所有文档,
- 每个关键词显示随机显示颜色。
效果如下所示:
网了很久,都找不到可以直接复制过来使用的方法(我太懒了。。)
没法了,只能自己个慢慢搞。
步骤一:列出所有文档关键词
经查,文档关键词所在的表名为dede_keywords
- 方法一:sql标签
{dede:sql sql="select * From dede_keywords "}
<a href="/plus/search.php?keyword=[field:keyword/]" class='yanse' id="data_[field:aid/]">
[field:keyword/]
</a>
{/dede:sql}
方法二:loop标签
{dede:loop table='dede_keywords' sort='' row='1' if=''}
<a href='/plus/search.php?keyword=[field:keyword/]'>[field:keyword/]</a><br/>
{/dede:loop}
把row属性去掉,无法正常显示!
步骤二:给关键词加上链接
链接咋写呢?
搜索框搜索时链接是这样的:
貌似在哪里看到过关键词链接跟搜索框里搜索时链接很像,于是去/puls/search.php里边找,发现以下代码,
于是我就猜测关键词链接是/plus/search.php?keyword=…
(好吧我承认,我很菜,只能边看源码边猜。。。不许笑话我)
试了一下,果不其然是这样的,哈哈哈~~~~
步骤三:关键词颜色随机
我php菜,js更是菜到家。。。
前端小姐姐给的css样式是不同的class颜色不一样:
<a href="#" class="yanse1">拉肚子怎么办</a>
<a href="#" class="yanse2">肠炎的治疗方法</a>
<a href="#" class="yanse3">肠炎反复</a>
<a href="#" class="yanse4">吃什么对肠道好</a>
<a href="#" class="yanse5">肠道疾病怎么调养</a>
<a href="#" class="yanse6">肠道感染</a>
<a href="#" class="yanse1">溃疡性结肠炎能活多久</a>
<a href="#" class="yanse2">肠易激综合症的症状</a>
<a href="#" class="yanse3">民间偏方治肠炎靠谱么</a>
<a href="#" class="yanse4">肠炎的自愈方法</a>
<a href="#" class="yanse5">结肠炎最佳治疗方案</a>
<a href="#" class="yanse6">溃疡性结肠炎是怎么回事</a>
<a href="#" class="yanse1">直肠炎吃什么药好的快</a>
<a href="#" class="yanse2">直乙状结肠炎严重么</a>
本来写的是下边这样的,
<script type="text/javascript">
arr = $(".yanse");
for (i = 1; i <= 20; i++) {
$(".yanse:eq("+i+")").attr('class', getRandomColor())
}
function getRandomColor() {
return 'yanse' + Math.floor(Math.random() * 6 + 1);//输出1~6之间的随机整数
}
</script>
但是结果是,每隔一个,就有一个关键词更改class属性失败,不清楚咋回事呐:
找不到错误原因就换个方法呐!
给关键词加上id属性,根据id进行筛选。
for循环里i<20是因为,dede_keywords表中id是自增,如果删除中间一个keyword,其他keyword id不会改变。如果写i<=arr.length,会导致后面的关键词可能无法更改class属性。因此就干脆把i的最大值写大一点。(可能表达不太清楚,看不懂拉倒)
{dede:sql sql="select * From dede_keywords "}
<a href="/plus/search.php?keyword=[field:keyword/]" class='yanse' id="data_[field:aid/]">
[field:keyword/]</a>
{/dede:sql}
<script src="/skin/js/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
arr = $(".yanse");
for (i = 1; i <= 20; i++) {
$("#data_" + i).attr('class', getRandomColor())
}
function getRandomColor() {
return 'yanse' + Math.floor(Math.random() * 6 + 1);
}
</script>
相似文章:织梦列表页面调用文章关键词