联动类别是 DedeCMS一个非常强大且实用的功能,它主要用于制作下拉菜单、地区选择、品牌选择、规格参数等具有层级或关联关系的数据。

(图片来源网络,侵删)
什么是联动类别?
联动类别就是一系列预先设定好的、有层级关系的数据,用户在前台可以通过下拉菜单的形式,进行多级联动选择。
常见的应用场景:
- 地区选择:省份 -> 城市 -> 区县
- 品牌选择:手机 -> 苹果 -> iPhone 15
- 汽车品牌:品牌 -> 车系 -> 年款
- 商品属性:颜色 -> 红色、蓝色、黑色;尺寸 -> S、M、L、XL
联动类别的工作原理
联动类别的实现分为两个核心部分:
- 后台数据管理(本节重点):在 DedeCMS 后台创建、编辑和管理联动类别及其选项,这是数据源。
- 前台数据调用:在前台模板文件中,使用特定的标签(如
{dede:sonchannel}或自定义表单)调用联动类别,生成可供用户交互的下拉菜单。
我们首先专注于后台管理。

(图片来源网络,侵删)
如何在后台管理联动类别?
步骤 1:进入联动类别管理界面
- 登录您的 DedeCMS 后台。
- 在左侧菜单栏中,找到 【核心】 -> 【频道模型】 -> 【联动类别管理】,点击进入。
步骤 2:创建一个新的联动类别
进入管理界面后,您会看到所有已创建的联动类别列表,点击右上角的 【增加联动类别】 按钮。
步骤 3:填写联动类别信息
在弹出的表单中,您需要填写以下关键信息:
-
类别名称:
- 作用:给这个联动类别起一个易于识别的名字,如“地区选择”、“手机品牌”。
- 注意:这个名字仅用于后台管理,前台调用时可能用不到。
-
类别英名:
(图片来源网络,侵删)- 作用:这是非常重要的一个字段,它是在数据库中存储和前台调用时使用的唯一标识符,通常使用英文或拼音,
area(地区)、brand(品牌)。 - 规则:只能包含字母、数字和下划线,且不能与已有的重复。
- 作用:这是非常重要的一个字段,它是在数据库中存储和前台调用时使用的唯一标识符,通常使用英文或拼音,
-
是否启用:
默认选择“是”,如果暂时不需要使用,可以设为“否”。
-
内容模型:
选择此联动类别将关联到哪个内容模型,如果您的联动类别是“手机品牌”,就应该选择您创建的“手机”内容模型,如果不确定,可以选择“不关联”。
-
显示方式:
选择“下拉菜单”,这是最常用的方式,也可以选择“单选按钮组”等。
-
默认选项:
设置默认选中的项,地区联动中可以默认选中“请选择”。
-
选项(核心部分):
- 这里是填写具体选项的地方,格式为
父ID,选项名称。 - 顶级选项(父ID为0):
0,省份0,直辖市
- 二级选项(父ID为上级的索引):
1,广东省(这里的1是“省份”的索引)1,江苏省(这里的1是“省份”的索引)2,北京市(这里的2是“直辖市”的索引)
- 三级选项(父ID为二级的索引):
3,广州市(这里的3是“广东省”的索引)3,深圳市(这里的3是“广东省”的索引)4,南京市(这里的4是“江苏省”的索引)
- 提示:每行一个选项,系统会自动根据您输入的
父ID来构建层级关系,您可以点击旁边的“选择项”按钮,在弹出的可视化窗口中进行编辑,这样会更直观。
- 这里是填写具体选项的地方,格式为
-
是否开启多选:
如果允许用户在一个层级选择多个选项(同时选择多个颜色),则勾选此项。
步骤 4:保存并管理
填写完所有信息后,点击 【确定】 保存,您的新联动类别就会出现在列表中了。
在列表中,您可以进行以下操作:
- 修改:编辑已创建的联动类别。
- 删除:删除不再需要的联动类别(谨慎操作)。
- 管理选项:快速进入该联动类别的选项管理界面。
联动类别管理的高级技巧与注意事项
-
“类别英名”的唯一性:
“类别英名”是全局唯一的,创建后尽量不要修改,否则可能导致前台调用出错,如果必须修改,需要同时修改数据库中的相关表。
-
选项索引的重要性:
- 在手动填写选项时,父ID的数字必须是对应父级选项在列表中的索引值(从1开始),而不是选项名称,如果搞错,层级关系就会错乱,强烈建议使用“选择项”按钮进行可视化编辑。
-
与自定义表单结合使用:
- 联动类别最常见的用途之一就是添加到自定义表单中。
- 在创建自定义表单时,字段类型选择“联动类型”。
- 在“联动类型”选项中,您就可以选择之前创建好的“地区选择”等联动类别了。
- 这样,用户在前台提交自定义表单时,就可以看到并使用这个联动下拉菜单。
-
在前台调用(简单示例):
- 如果您想在非表单的普通页面中调用联动类别,可以使用
{dede:sonchannel}标签,但这通常用于频道列表,更通用的方法是使用 PHP 代码查询数据库。 - 示例代码(调用名为
area的联动类别):{dede:global name='phpcode' runphp='yes'} $sql = "SELECT * FROM `dede_sys_enum` where egroup='area' ORDER by disorder ASC"; $dsql->SetQuery($sql); $dsql->Execute(); $options = ''; while($row = $dsql->GetArray()) { // 这里需要根据您的数据结构进行判断和拼接 // 这是一个简化示例,实际中需要处理层级关系 $options .= "<option value='{$row['evalue']}'>{$row['ename']}</option>"; } @me = "<select name='area'>".$options."</select>"; {/dede:global} - 注意:直接调用联动类别比较复杂,通常最简单、最推荐的方式是通过自定义表单来使用它。
- 如果您想在非表单的普通页面中调用联动类别,可以使用
DedeCMS 联动类别管理流程:
- 后台创建:【核心】->【频道模型】->【联动类别管理】->【增加联动类别】。
- 填写关键信息:特别是“类别英名”和“选项”。
- 选项管理:使用可视化编辑器或按
父ID,名称的格式填写,确保层级正确。 - 前台应用:最常用的是将联动类别添加到自定义表单中,供用户选择和提交。
掌握了联动类别管理,您就可以轻松地为您的网站添加各种复杂的、交互性强的下拉选择功能,极大地提升用户体验和网站的灵活性。
