在织梦CMS中,联动标签是一种非常实用的功能,主要用于实现多级联动选择的效果,比如省份、城市、区县的联动,或者商品分类、品牌等具有层级关系的数据调用,通过联动标签,用户可以方便地实现动态数据筛选和展示,提升网站的交互性和用户体验,下面将详细介绍织梦如何调用联动标签,包括准备工作、标签调用方法及参数说明。

准备工作
在调用联动标签之前,首先需要确保织梦系统中已经创建了联动类型并添加了联动数据,具体步骤如下:
- 登录织梦后台,进入“核心”->“频道模型”->“联动类型管理”。
- 创建联动类型:点击“增加新联动类型”,填写联动类型名称(如“省份城市”)、字段名称(如“nativeplace”)、是否开启(默认开启)等信息,保存后系统会自动生成一个字段ID。
- 添加联动数据:选择刚创建的联动类型,进入“管理联动类型”页面,点击“增加顶级分类”,逐级添加下级数据(如省份、城市、区县),确保层级关系正确。
联动标签的调用方法
织梦联动标签的调用主要通过{dede:sonchannel}标签实现,结合联动类型的字段ID和层级参数进行调用,以下是常见的调用方式:
基本调用语法
{dede:sonchannel type='id' row='10' currentstyle=''}
<a href='[field:typelink/]'>[field:typename/]</a>
{/dede:sonchannel}
type:指定联动类型的字段ID,如联动类型的字段ID为1,则type='1'。row:显示的数据条数,默认为10条,可根据需要调整。currentstyle:当前项的样式,如currentstyle='<a href="[field:typelink/]" class="current">[field:typename/]</a>'。
多级联动调用
若需实现多级联动(如省份->城市->区县),需通过topid参数指定上级分类的ID。
{dede:sonchannel type='1' topid='0' row='10'}
<a href='[field:typelink/]'>[field:typename/]</a>
{/dede:sonchannel}
topid:上级分类的ID,0表示顶级分类。
动态联动调用(结合JS)
若需实现前端动态联动(如选择省份后动态加载城市),需结合JavaScript和AJAX技术,以下是简要步骤:

- 在模板中放置下拉框:
<select id="province" onchange="loadCity(this.value)"> <option value="0">请选择省份</option> {dede:sonchannel type='1' topid='0' row='100'} <option value="[:id/]">[typename]</option> {/dede:sonchannel} </select> <select id="city"> <option value="0">请选择城市</option> </select> - 编写JS函数:
function loadCity(provinceId) { $.ajax({ url: '/plus/ajax_getchannel.php', type: 'GET', data: {type: '2', topid: provinceId}, dataType: 'json', success: function(data) { var citySelect = document.getElementById('city'); citySelect.innerHTML = '<option value="0">请选择城市</option>'; for (var i = 0; i < data.length; i++) { citySelect.innerHTML += '<option value="' + data[i].id + '">' + data[i].typename + '</option>'; } } }); }
参数说明表
| 参数名 | 说明 | 示例 |
|---|---|---|
type |
联动类型的字段ID | type='1' |
topid |
上级分类的ID,0为顶级 | topid='0' |
row |
显示条数 | row='10' |
currentstyle |
当前项样式 | currentstyle='<a href="[field:typelink/]" class="current">[field:typename/]</a>' |
typeid |
指定分类ID(可选) | typeid='5' |
注意事项
- 确保联动类型的字段ID正确,可通过“频道模型”->“内容模型管理”查看字段ID。
- 多级联动时,需逐级调用,并确保
topid参数准确。 - 动态联动需确保织梦的
ajax_getchannel.php文件存在且路径正确。
相关问答FAQs
问题1:联动标签调用后显示为空,是什么原因?
解答:可能原因包括:联动类型的字段ID错误、未添加联动数据、模板标签语法错误,建议检查type参数是否正确,并确认联动数据是否已添加且层级关系正确。
问题2:如何实现联动标签的默认选中效果?
解答:可通过typeid参数指定默认选中的分类ID,例如typeid='5',或在前端JS中设置下拉框的selected属性,如document.getElementById('province').value='5'。

