數據庫讀取數據,二級聯動

Action:獲取數據庫數據對象並轉換成JSON對象

Map<ProductType, List<ProductType>> mapList=sampleBaseInfoService.getProductList();
            Map<String, Map<String,String>> map = new HashMap<String, Map<String,String>>();
            for (ProductType p : mapList.keySet()) {
                Map<String,String> maptmp = new HashMap<String,String>();
                List<ProductType> tmpBomTypes = mapList.get(p);
                for (ProductType productBomType : tmpBomTypes) {
                    maptmp.put(productBomType.getId()+"" ,productBomType.getTypeName());
                }
                map.put(p.getId()+"", maptmp);
            }
            System.out.println(map);
            JSONObject jsonObject = JSONObject.fromObject(map);
            //放置到上下文對象中
            ValueContext.putValueContext("mapList", mapList);
            ValueContext.putValueContext("jsonMap", jsonObject);

JSP頁面:
JS代碼控制二級菜單聯動:

<script type="text/javascript">
$(function(){
    var map  = ${jsonMap};
    var value = $("select[parent]:eq(0)").val();
        var list = map[value];
        var child = $("select[child]:eq(0)");
        for(var key in list){
            child.append("<option value='"+key+"'>"+list[key]+"</option>");
        }
    $("select[parent]").change(function(){
        var value = $(this).val();
        var list = map[value];
        var child = $("select[child]:eq(0)");
        child.empty();
        for(var key in list){
            child.append("<option value='"+key+"'>"+list[key]+"</option>");
        }
    });
})
</script>

頁面應用

<select name="parent" parent="true" >
                <s:iterator value="#mapList.keySet" >
                    <option value="<s:property value="id"/>"><s:property value="typeName"/></option>
                </s:iterator>
            </select>
            <select name="productType.id" child="true" value="${productType.typeName}"> </select>

運行效果截圖:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章