插件是网上下载的:帝国CMS无限联动插件V2.01(支持ECMS 7.0/7.2/7.5)
完整代码可以网上搜索,js文件说明都有。
描述:
步骤一、网站后台(或者前端)默认是选择最后一个城市名称的ID入库的,比如:河北省(第一级ID=6)- 石家庄市(第二级ID=36)- XX区(第三级ID=401),写入数据库的就是最后一级:401。下次打开后,根据录入的数据自动显示关联的三个城市名。
我新增一个扩展字段:cityid;(插件可以无限新增的),新字段全部是自定义的数字。
以上是插件的自带的功能。
二、问题:
我要把新增的字段:cityid 里自定义的值作为最后录入数据库的。(意识就是我不要步骤一,录入的是名称的ID,我要新增字段的值录入数据库的字段里)。录入后下次打开自动显示关联的三个城市名。
三、代码:
3.1、后台数据表新增联动字段 比如:binahao 代码如下
<?php $rf = $empire -> fetch1("select id,path from {$dbtbpre}extend_linkage where id='{$r['bianhao']}'");//查找父分类 $patharr = explode(',1,', $rf['path']);//parentid路径数组分割 if($patharr[1]){ $path = $patharr[1] . $rf['id'];//取得当前值的实际路径 }else{ $path = $rf['id'];//取得当前值的实际路径 } ?> <script src="/e/extend/yl_linkage/js/jquery.js"></script> <script src="/e/extend/yl_linkage/js/linkagesel-min.js"></script> <input type="hidden" name="bianhao" id="bianhao" /> <select id="bianhao_select"></select> <script> $(document).ready(function(){ var opt_bianhao = { ajax: '/e/extend/yl_linkage/get.php?type=1&parentid=1',//联动类型和起始ID selStyle: 'margin-left:5px;',//CSS样式 select: '#bianhao_select',//下拉框ID head:'请选择',//下拉框提示语 level:3,//联动级别 fixWidth:100, defVal: [<?=$path?>], //初始值 size:0 // select的size属性 }; var bianhao = new LinkageSel(opt_bianhao); //取下拉框最后选中值并赋值给字段ID bianhao.onChange(function() { var val = bianhao.getSelectedValue(); $('#bianhao').val(val); }); }); </script>
3.2、get.php代码:
<?php require("../../class/connect.php"); require("../../class/db_sql.php"); require("../../class/functions.php"); $link=db_connect(); $empire=new mysqlquery(); $type=(int)$_GET['type'];//联动类型 $parentid=(int)$_GET['id'];//父栏目ID if(!$parentid){ $parentid=(int)$_GET['parentid']?(int)$_GET['parentid']:1; } $where = 'WHERE parentid = '.$parentid.' and type = '.$type; $query="select * from {$dbtbpre}extend_linkage $where order by myorder,id"; $sql=$empire->query($query); while($row=$empire->fetch($sql)){ $arr[$row['id']] = array('name'=> $row['name']); } header("Content-Type: application/json; charset=UTF-8"); echo json_encode($arr); ?>
3.3、插件后台生成的缓存文件,数组代码太长,我只列一部分:
<? $linkage_1 = array ( 1 => array ( 'id' => '1', 'parentid' => '0', 'name' => '中国', 'type' => '0', 'path' => '0,', 'myorder' => '0', 'cityid' => '0', 'zfl' => '2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35', ), 2 => array ( 'id' => '2', 'parentid' => '1', 'name' => '北京市', 'type' => '1', 'path' => '0,1,', 'myorder' => '0', 'cityid' => '110000', 'zfl' => '394', ), 3 => array ( 'id' => '3', 'parentid' => '1', 'name' => '上海市', 'type' => '1', 'path' => '0,1,', 'myorder' => '0', 'cityid' => '120000', 'zfl' => '398', ), 4 => array ( 'id' => '4', 'parentid' => '1', 'name' => '天津市', 'type' => '1', 'path' => '0,1,', 'myorder' => '0', 'cityid' => '130000', 'zfl' => false, ), ) ?>
改下你设值就可以了
//取下拉框最后选中值并赋值给字段ID
bianhao.onChange(function() {
var val = bianhao.getSelectedData('cityid'),
$('#bianhao').val(val);
});
早试过了,这样改数据库什么也没有