多级菜单实现级联效果,且页面不刷新,求高手指点

解决方案 »

  1.   

    菜单select的option是从数据库copy来的,js可行?
      

  2.   

    级联有好多种做法,实现不刷新,那不是struts的范围了。
    可以选择用jquery的tree去操作,建议楼主去google搜dtree或ztree,两种不错的tree。
    数据库中必须有parentid,其余的ID可以备用如等级(1,2,3)
      

  3.   

    级联有好多种做法,实现不刷新,那不是struts的范围了。
    可以选择用jquery的tree去操作,建议楼主去google搜dtree或ztree,两种不错的tree。
    数据库中必须有parentid,其余的ID可以备用如等级(1,2,3)
      

  4.   


    院系:
    <select name="yx" id="yx">
        <option value="1">计算机</option>
        <option value="2">音乐</option>
        <option value="3">舞蹈</option>
    </select>
    专业:
    <select name="zy" id="zy">
    </select>
    班级:
    <select name="bj" id="bj">
    </select>$(document).ready(function(){    var option1 = "<option value='";
        var option2 = "'>";
        var option3 = "</option>";    // 选择院系
        $('#yx').change(function(){
            var yxVal = $("#yx").val();
            $.ajax({
                url: "*****.action",
                type: "post",
                data: "yx="+yxVal,
                error: function(){
                    alert('院系-专业关联失败');
                },
                success : function(result){  // result 返回的是json格式数据
                    var dataObj = eval("("+result+")");//转换为json对象
                    var a;
                    for(var i = 0; i < dataObj.Table.length; i++){
                        a += option1 + dataObj.Table[i].zyID + option2 + dataObj.Table[i].zyNAME + option3;
                    }
                    $('#yx').html(a);
                }
            });
        });    // 选择专业
        $('#zy').change(function(){
            var zyVal = $("#zy").val();
            $.ajax({
                url: "*****.action",
                type: "post",
                data: "zyID="+zyVal,
                error: function(){
                    alert('专业-班级关联失败');
                },
                success : function(result){  // result 返回的是json格式数据
                    var dataObj = eval("("+result+")");//转换为json对象
                    var a;
                    for(var i = 0; i < dataObj.Table.length; i++){
                        a += option1 + dataObj.Table[i].bjID + option2 + dataObj.Table[i].bjNAME + option3;
                    }
                    $('#bj').html(a);
                }
            });    
        });
    });现在级联操作控件网上都有很多的,自己靠ajax写一个也是没有问题的……
      

  5.   

    谢谢楼上的各位,我去学AJAX先
      

  6.   

    异步提交 肯定需要 ajax(jQuery 封装的就可以)
    如果异步读取数据,从数据库读写出来的话
    用 dtree,dhtmlxtree 这两个 第三方的 open project 也可以. 超级容易学. 有例子可以跟着写写.
    dtree,dhtmlxtree 效果就是 csdn 左菜单栏的效果.
      

  7.   

    异步提交 肯定需要 ajax(jQuery 封装的就可以)
    如果异步读取数据,从数据库读写出来的话
    用 dtree,dhtmlxtree 这两个 第三方的 open project 也可以. 超级容易学. 有例子可以跟着写写.
    dtree,dhtmlxtree 效果就是 csdn 左菜单栏的效果.