• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

dedecms会员详细资料的目前所在地和家乡所在地改为3级省市级联选择

JavaScript 开心洋葱 1209次浏览 0个评论

dedecms会员详细资料的目前所在地和家乡所在地改为3级省市级联选择

 

目前所在地和家乡所在地改为3级省市级联选择未修改之前的效果图:

dedecms会员详细资料的目前所在地和家乡所在地改为3级省市级联选择

 

目前所在地和家乡所在地改为3级省市级联选择修改后的样式:

dedecms会员详细资料的目前所在地和家乡所在地改为3级省市级联选择

 

修改的代码如下:

include/membermodel.cls.php

代码的约108行:

else if ($tag->GetName() == 'place' || $tag->GetName() == 'oldplace')
                            {
                                $formtitle = ($tag->GetName() == 'place')? '目前所在地' : '家乡所在地';
                                //$此行为原有的代码  formstring .='<li><div class="lform">' . GetEnumsForm('nativeplace',
                               // 此行为原有的代码       0,$tag->GetName()).'</div><span>'.$formtitle.':</span></li>';
        
$formstring .= "<label>".$formtitle.":</label><input type='hidden' id='hidden_".$tag->GetName()."' name='".$tag->GetName()."' value='0' />
<span id='span_".$tag->GetName()."'></span>
<span id='span_".$tag->GetName()."_son'></span>
<span id='span_".$tag->GetName()."_sec'></span>
<script language='javascript' type='text/javascript' src='/images/enums_1.js'></script>
<script language='javascript' type='text/javascript' src='/data/enums/nativeplace.js'></script>
<script language='javascript' type='text/javascript'>MakeTopSelect('".$tag->GetName()."', 0);</script>";
           
                            }

 

代码的约144行:

 else if ($tag->GetName() == 'place' || $tag->GetName() == 'oldplace'){
                                 
            $formtitle = ($tag->GetName() == 'place')? '目前所在地' : '家乡所在地';
            //此行为原有的代码  $formstring .='<p><label>'.$formtitle.':</label>' . GetEnumsForm('nativeplace',$value[$tag->GetName()],$tag->GetName()).'</p>';

$formstring .= "<label>".$formtitle.":</label><input type='hidden' id='hidden_".$tag->GetName()."' name='".$tag->GetName()."' value='".$value[$tag->GetName()]."' />
<span id='span_".$tag->GetName()."'></span>
<span id='span_".$tag->GetName()."_son'></span>
<span id='span_".$tag->GetName()."_sec'></span>
<script language='javascript' type='text/javascript' src='/images/enums_1.js'></script>
<script language='javascript' type='text/javascript' src='/data/enums/nativeplace.js'></script>
<script language='javascript' type='text/javascript'>MakeTopSelect('".$tag->GetName()."', ".$value[$tag->GetName()].");</script>";
         
           }


复制images/enums.js文件改名为enums_1.js,并把

'em_'+emname+'s'
 

替换为


'em_nativeplaces'

 

替换好的images/enums_1.js文件内容如下

 

#p#副标题#e#

<!--

//选择地区的二级分类(非通用调用)
function selNext(oj, v)
{
    var newobj = oj.options;
    var selv = parseInt(v);
    var maxv = parseInt(v) + 500;
    while(newobj.length > 0) {
        oj.remove(0);
    }
    clear(oj);
    if(selv==0)
    {
        aOption = document.createElement('OPTION');
        aOption.text = '具体地区';
        aOption.value = '0';
        oj.options.add(aOption);
        return;
    }
    else
    {
        aOption = document.createElement('OPTION');
        aOption.text = '具体地区';
        aOption.value = '0';
        oj.options.add(aOption);
    }
    var str = '';
    for(i=selv+1; i < maxv; i++)
    {
        if(!em_nativeplaces[i]) continue;
        aOption = document.createElement('OPTION');
        aOption.text = em_nativeplaces[i];
        aOption.value = i;
        oj.options.add(aOption);
    }
}


//子类改变事件
function ChangeSon()
{
    /*
    var emname = this.name.replace('_son', '');
    var topSelObj = document.getElementById(emname+'_top');
    if(this.options[this.selectedIndex].value==0) {
        document.getElementById('hidden_'+emname).value = topSelObj.options[topSelObj.selectedIndex].value;
    }
    else {
        document.getElementById('hidden_'+emname).value = this.options[this.selectedIndex].value;
    }
    */
    // 由于支持3级联动,所以这里需要对自己改变进行重构
    var emname = this.name.replace('_son', '');
    // alert(emname);
    if( document.getElementById(emname+'_sec') )
    {
        var oj = document.getElementById(emname + '_sec');
    }
    else
    {
        var oj  = document.createElement('select');
        oj.name = emname + '_sec';
        oj.id   = emname + '_sec';
        oj.onchange = ChangeSec;
    }
    var v = this.options[this.selectedIndex].value;
    document.getElementById('hidden_'+emname).value = v;
    var newobj = oj.options;
    var selarr = eval('em_nativeplaces');

    var selv = parseInt(v);
    var maxv = parseInt(v) + 0.5;
    // alert(maxv);
    i = 0;
    while(newobj && newobj.length > 0) oj.remove(0);
    clear(oj);
    if(selv == 0)
    {
        aOption = document.createElement('OPTION');
        aOption.text = '请选择..';
        aOption.value = '0';
        oj.options.add(aOption);
        return;
    }
    else
    {
        aOption = document.createElement('OPTION');
        aOption.text = '请选择..';
        aOption.value = '0';
        oj.options.add(aOption);
    }
    var str = '';
    var j=0;
    for(i = selv + 0.001; i < maxv; i = FloatAdd(i, 0.001))
    {
        if(!selarr[i]) continue;
        aOption = document.createElement('OPTION');
        aOption.text = selarr[i];
        aOption.value = i;
        oj.options.add(aOption);
        j++;
    }
    if(j > 0) document.getElementById('span_'+emname+'_sec').appendChild(oj);
    else document.getElementById('span_'+emname+'_sec').innerHTML = "";
}

// 改变第三级的事件
function ChangeSec()
{
    var emname = this.name.replace('_sec', '');
    var topSelObj = document.getElementById(emname+'_top');
    if(this.options[this.selectedIndex].value==0) {
        document.getElementById('hidden_'+emname).value = topSelObj.options[topSelObj.selectedIndex].value;
    }
    else {
        document.getElementById('hidden_'+emname).value = this.options[this.selectedIndex].value;
    }
}

//顶级类改变事件
function selNextSon()
{
    var emname = this.name.replace('_top', '');
    if( document.getElementById(emname+'_son') )
    {
        var oj = document.getElementById(emname + '_son');
    }
    else
    {
        var oj  = document.createElement('select');
        oj.name = emname + '_son';
        oj.id   = emname + '_son';
        oj.onchange = ChangeSon;
    }
    var v = this.options[this.selectedIndex].value;
    document.getElementById('hidden_'+emname).value = v;
    var newobj = oj.options;
    var selarr = eval('em_nativeplaces');
    var selv = parseInt(v);
    var maxv = parseInt(v) + 500;
    while(newobj && newobj.length > 0) oj.remove(0);
    clear(oj);
    if(selv==0)
    {
        aOption = document.createElement('OPTION');
        aOption.text = '请选择..';
        aOption.value = '0';
        oj.options.add(aOption);
        return;
    }
    else
    {
        aOption = document.createElement('OPTION');
        aOption.text = '请选择..';
        aOption.value = '0';
        oj.options.add(aOption);
    }
    var str = '';
    for(i=selv+1; i < maxv; i++)
    {
        if(!selarr[i]) continue;
        aOption = document.createElement('OPTION');
        aOption.text = selarr[i];
        aOption.value = i;
        oj.options.add(aOption);
    }
    document.getElementById('span_'+emname+'_son').appendChild(oj);
}


// 根据数组生成多级联动菜单
function MakeTopSelect(emname, selvalue)
{
    var selectFormHtml = '';
    var aOption = null;
    var selObj = document.createElement("select");
    selObj.name = emname + '_top';
    selObj.id   = emname + '_top';
    selObj.onchange = selNextSon;
    var selarr = eval('em_nativeplaces');
    // alert(selarr[1002.2]);
    var topvalue = 0;
    var sonvalue = 0;
    var secvalue = 0;
   
    aOption = document.createElement('OPTION');
    aOption.text = '请选择..';
    aOption.value = 0;
    selObj.options.add(aOption);
   
    // alert(selvalue);
    if(selvalue % 500 == 0 )
    {
        topvalue = selvalue;
    }
    // 如果是小数,则依次取出顶级数值,二级数值以及三级数值
    else if(!!(selvalue % 1))
    {
        secvalue = selvalue;
        sonvalue = Math.floor(selvalue);
        topvalue = sonvalue - (sonvalue % 500);
        // alert(secvalue);
    }
    else {
        sonvalue = selvalue;
        topvalue = selvalue - (selvalue % 500);
    }
   
    for(i = 500; i <= selarr.length; i += 500)
    {
        if(!selarr[i]) continue;
        aOption = document.createElement('OPTION');
        if(i == topvalue) {
            aOption = document.createElement('OPTION');
            aOption.text = selarr[i];
            aOption.value = i;
            selObj.options.add(aOption);           
            aOption.selected = true;
        }
        else {
            aOption = document.createElement('OPTION');
            aOption.text = selarr[i];
            aOption.value = i;
            selObj.options.add(aOption);
        }
    }
    document.getElementById('span_'+emname).appendChild(selObj);
   
    //如果子类存在值,创建子类
    //if(sonvalue > 0 || topvalue > 0) {
    selObj = document.createElement("select");
    selObj.name = emname + '_son';
    selObj.id   = emname + '_son';
    selObj.onchange = ChangeSon;
    aOption = document.createElement('OPTION');
    aOption.text = '请选择..';
    aOption.value = 0;
    selObj.options.add(aOption);
   
    //当大类有值输出子类
    if(topvalue > 0)
    {
        var selv = topvalue;
        var maxv = parseInt(topvalue) + 500;
        for(i = selv + 1; i < maxv; i++)
        {
            if(!selarr[i]) continue;
            aOption = document.createElement('OPTION');
            if(i == sonvalue) {
                aOption = document.createElement('OPTION');
                aOption.text = selarr[i];
                aOption.value = i;
                selObj.options.add(aOption);
                aOption.selected = true;
            }
            else {
                aOption = document.createElement('OPTION');
                aOption.text = selarr[i];
                aOption.value = i;
                selObj.options.add(aOption);
            }
        }
    }
    document.getElementById('span_'+emname+'_son').appendChild(selObj);
   
    // 若存在第三级则创建
    if(secvalue > 0)
    {
        selObj = document.createElement("select");
        selObj.name = emname + '_sec';
        selObj.id   = emname + '_sec';
        selObj.onchange = ChangeSec;
        aOption = document.createElement('OPTION');
        aOption.text = '请选择..';
        aOption.value = 0;
        selObj.options.add(aOption);
       
        var selv = sonvalue;
        var maxv = parseInt(sonvalue) + 0.5;
        // alert(maxv);
        i = 0;
        for(i = selv + 0.001; i < maxv; i = FloatAdd(i, 0.001))
        {
            if(!selarr[i]) continue;
            aOption = document.createElement('OPTION');
            if(i == secvalue) {
                aOption = document.createElement('OPTION');
                aOption.text = selarr[i];
                aOption.value = i;
                selObj.options.add(aOption);
                aOption.selected = true;
            }
            else {
                aOption = document.createElement('OPTION');
                aOption.text = selarr[i];
                aOption.value = i;
                selObj.options.add(aOption);
            }
        }
    }
    document.getElementById('span_'+emname+'_sec').appendChild(selObj);
}

// 两个小数相加进度计算
function FloatAdd(arg1, arg2)
{
    var r1,r2,m;
    try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
    try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
    m=Math.pow(10,Math.max(r1,r2))
    return (arg1*m+arg2*m)/m
}

//清除旧对象
function clear(o)
{
    l=o.length;
    for (i = 0; i< l; i++){
        o.options[1]=null;
    }
}

-->

#p#分页标题#e#

 


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明dedecms会员详细资料的目前所在地和家乡所在地改为3级省市级联选择
喜欢 (0)

您必须 登录 才能发表评论!

加载中……