帝国cms 省市县三级联动插件,默认是最后选择的ID关联省市县,能否换个新的字段关联?

插件是网上下载的:帝国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);

    });

早试过了,这样改数据库什么也没有