zoukankan      html  css  js  c++  java
  • destoon信息或者公司归属多个类别的解决方式

    有时候,一条信息属对应于多个类别,在destoon原生系统里是没有这个解决方案

    在公司行业类别选择的地方实现了这个功能,但是选择体验不太好,不符合我当前的需求,目前我写了如下解决方案

     

    系统代码如下:

    前端使用插件:tntreebox

    <script type="text/javascript">
            $(function(){
                var data = [];
                for(var i=0;i<10;i++){
                    if(i==2){
                        var no_box = true;
                    }else{
                        var no_box = false
                    }
                    data.push({
                        id:'p_'+i,
                        name:'父选项'+i,
                        no_box:no_box,
                    });
                }
    
                for(var i=0;i<10;i++){
                    data.push({
                        id:'c_'+i,
                        name:'子选项1_'+i,
                        parent_id:'p_1',
                    });
                }
                for(var i=10;i<1000;i++){
                    data.push({
                        id:'c_'+i,
                        name:'父选项2_'+i,
                        parent_id:'p_2'
                        //is_select:true,
                    });
                }
                tnTreeBox('treebox','checkboxname',data,['c_1','c_2']);
            });
    
        </script>
        tnTreeBox('div_id','checkboxname',data,selected);

    参数说明:
    div_id:插入html的标签id
    checkboxname:checkname的name
    data:选项数据,array,如 [id:1,name:'选项1']
    selected:已中项id,array,如:['id1','id2']

    data配置说明:
    id:checkbox的valude
    name:选项名称
    is_parent:上级id
    is_select:是否选中
    no_box:设置没checkbox项目



    /module/member/admin/template/member_add.tpl.php

     <script type="text/javascript" src="/file/script/tntreebox.js?v=2"></script>
                <link rel="stylesheet" type="text/css" href="/file/script/tntreebox.css?v=2" />
                <div id='treebox' style=" 800px; margin: 20px;"></div>
                <script type="text/javascript">
                    $(function(){
                        var data = [];
                        <?php
                            $maincat=get_maincat(0,5 );
                            foreach ($maincat as $k=>$v){
                                echo "data.push({id:'p_'+{$v['catid']},name:'{$v['catname']}',no_box:true,});";
                                $soncat=get_maincat($v['catid'],5 );
                                $fid = $v['catid'];
                                foreach ($soncat as $k =>$v){
                                    echo "data.push({id:'s'+{$v['catid']},name:'{$v['catname']}',parent_id:'p_{$fid}',});";
                                }
                            }
    
                         ?>
    
                        tnTreeBox('treebox','post[major][]',data,[]);
                    });
    
                </script>

    /module/member/admin/template/member_edit.tpl.php

          <script type="text/javascript" src="/file/script/tntreebox.js?v=2"></script>
                <link rel="stylesheet" type="text/css" href="/file/script/tntreebox.css?v=2" />
                <div id='treebox' style=" 800px; margin: 20px;"></div>
    
                <script type="text/javascript">
                    $(function(){
                        var data = [];
                        <?php
                        $maincat=get_maincat(0,5 );
                        foreach ($maincat as $k=>$v){
                            echo "data.push({id:'p_'+{$v['catid']},name:'{$v['catname']}',no_box:true,});";
                            $soncat=get_maincat($v['catid'],5 );
                            $fid = $v['catid'];
                            foreach ($soncat as $k =>$v){
                                echo "data.push({id:'s'+{$v['catid']},name:'{$v['catname']}',parent_id:'p_{$fid}',});";
                            }
                        }
                        $major = $major ? explode(',', substr($major, 1, -1)) : array();
                        $majorSelect="'ssss'";
                        foreach ($major as $k=>$v){
                            $majorSelect.=",'s{$v}'";
                        }
                        //$majorSelect = "'s251','s40'";
                        ?>
    
                        tnTreeBox('treebox','post[major][]',data,[<?php echo $majorSelect;?>]);
                    });
    
                </script>

    /module/member/member.class.php

    function edit ,function add方法增加major和majors字段
            $company_fields = array(…………………………,'major','majors');
    function set_member方法里增加如下代码段
     //对学校专业做多重选择
            $member['major']=isset($member['major'])?$member['major']:'';
            $member['major']=implode(',' , $member['major']);
            $member['major']=','.str_replace('s','',$member['major']).',';//替换掉产生的s字母
            if($member['major']) {
                $majors = explode(',', substr($member['major'], 1, -1));
                $cids = '';
                foreach($majors as $catid) {
                    $C = get_cat($catid);
                    echo($C['arrparentid']).'<hr>';
                    if($C) {
                        $catid = $C['parentid'] ? $C['arrparentid'].','.$catid : $catid;
                        $cids .= $catid.',';
                    }
                }
                $cids = array_unique(explode(',', substr(str_replace(',0,', ',', ','.$cids), 1, -1)));
                $member['majors'] = ','.implode(',', $cids).',';
            }
  • 相关阅读:
    图形化代码阅读工具——Scitools Understand
    cocos studio UI 1.6.0.0 修改导出项目路径
    cocos2dx 中文路径编译错误记录
    利用特性区分查找方法,并通过反射调用方法
    WPF MVVM学习(二)
    wpf 控件模板、面板模板、数据模板
    blend 自定义控件
    wpf dataGrid样式
    blend 使用模板的几点说明
    WPF MVVM学习
  • 原文地址:https://www.cnblogs.com/keleyu/p/11592479.html
Copyright © 2011-2022 走看看