首页 > web前端 > js教程 > 正文

JavaScript Ajax Json实现上下级下拉框联动

高洛峰
发布: 2016-11-26 16:23:36
原创
1351人浏览过

最近尝试做出一个部门和人员的下拉框联动功能,部门和人员的对应关系是1:n

[html] 

<div class="forntName">部门</div>  

    <div class="inpBox">  

    <select  name="department" id="department"  onchange="change();" style="width:200px;" >  

立即学习Java免费学习笔记(深入)”;

    <option value='-1'>请选择</option>  

    <s:iterator value="departmentList">  

        <option value='<s:property value="departmentCode"/>'><s:property value="departmentName"/></option>  

    </s:iterator>  

    <select>    

    </div>  

<span style="white-space:pre">  </span><div class="forntName">人员</div>  

    <div class="inpBox">  

    <select name="workorderOperator" id = "workorderOperator" style="width:200px;">  

                              

    <s:iterator value="userList">  

        <option value='<s:property value="userName"/>'><s:property value="userName"/></option>  

    </s:iterator>  

    </select>  

    </div>  

 

部门下拉框的onchange()事件走一个AJAX方法,返回一个JSON对象(JSON里放的是个LIST)。

js方法在此页面的写法:

[javascript] 

<script type="text/javascript">  

function change(){       

    var departmentCode =$("#department").val();    

        

    var params = {    

        'departmentCode':departmentCode    

    };    

    $.ajax({  

        type: 'get',  

        url: "departmentChangeEvent.shtml",  

        cache: false,  

        data: params,  

        dataType: 'json',  

        success: function(data){  

         var sel2 = $("#workorderOperator");    

         sel2.empty();    

         if(data==null)  

             {  

             sel2.append("<option value = '-1'>"+"部门人员为空"+"</option>");  

             }  

         var items=data.list;  

         if(items!=null)  

            {  

              for(var i =0;i<items.length;i++)  

              {  

               var item=items[i];  

               sel2.append("<option value = '"+item.userName+"'>"+item.userChinesename+"</option>");  

jQuery实现select省市区三级联动下拉框
jQuery实现select省市区三级联动下拉框

jQuery实现select省市区三级联动下拉框,通过选择省,市区的值随之变化,非常适用于企业网站或者商城网站,用户在注册的时候填写的信息。php中文网推荐下载!

jQuery实现select省市区三级联动下拉框 81
查看详情 jQuery实现select省市区三级联动下拉框

              };  

             }       

         else  

             {  

             sel2.empty();    

             }  

        },  

        error: function(){  

            return;  

        }  

    });  

    //$.post(url, params, callback);    

}    

[javascript]  

</script>  

此处返回的data里包含list(list见后文),list里包含着人员的代码,人员的姓名两个属性。然后先把人员下拉框empty(),通过select控件append方法 添加新的下拉框元素。

后台代码:

[java]  

public String departmentChangeEvent() throws Exception{  

        userList=service.queryForList("Workorder.queryUserByDepartmentCode", departmentCode);  

        if(userList!=null&&userList.size()>0)  

        {  

            HttpServletResponse response = ServletActionContext.getResponse();  

            response.setContentType("text/html;charset=utf-8");  

            response.setHeader("Pragma","No-cache");  

            response.setHeader("Cache-Control","no-cache");  

            response.setHeader("Cache-Control", "no-store");  

            PrintWriter writer = response.getWriter();  

            JSONObject json = new JSONObject();  

            Map map = new HashMap();  

               map.put("list",userList);  

               JSONObject jso = JSONObject.fromObject(map);  

            writer.write(jso.toString());  

            writer.flush();  

            writer.close();     }  

            return null;    

   }    

 

这个方法是部门切换事件,通过departmentCode(field域,有set,get)来求的当前部门下的用户放到userList中。www.2cto.com

然后通过标准写法把userList放到一个定义好的HashMap中,KEY为list。

[java] 

<strong> JSONObject jso = JSONObject.fromObject(map);</strong>  

这是最为关键的一步,有的json对象创建方法也可以为JSONObject jso = new JSONObject() ; 然后把list里的记录放入到jso中。。。

在这里是行不通的,前台会认为返回的是个字符串。。。

struts中 返回类型为json

[html]  

<action name="departmentChangeEvent" class="workorderAction" method="departmentChangeEvent">   

      <result type="json">  

    </result>   

       </action>  

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号