Ajax 联动下拉框

防止中文乱码:前端两次encodeURI加码 后端两次URLDecoder.decode(itemName,”UTF-8”)解码
js代码

 function getdepartment() {
        //获取下拉框主键
        var itemName=encodeURI(encodeURI($("#plane").find('option:selected').val()));
        $("#department").empty();     //清空二级目录 
        var _controllerPath = window.location.href.split("?")[0];
        _controllerPath = _controllerPath.substring(0, _controllerPath.lastIndexOf("/") + 1);
        var url = _controllerPath +"ts?itemName="
        url=url+itemName;
        var classNext=$("#department");

        $.ajax({
                type : "post",
                contentType : "application/json;charset=utf-8",
                url : url,
                success : function(data) {
                      data = JSON.parse(data).data;

                    if (data.length != ""
                            && data.length != null) {
                        for (var i = 0; i < data.length; i++) {
                            classNext.append("<option value="+data[i].itemName+">"
                                            + data[i].itemName
                                            + "</option>");
                        }
                    } else {
                        classNext
                                .append("<option value="+itemName+">---暂无数据,请添加---</option>");
                    }
                }
            });
     }

controller层代码

itemName1=URLDecoder.decode(URLDecoder.decode(itemName,"UTF-8"),"UTF-8");
return ReturnCode.getSuccResponse().setData(orgdataService.selectlinkage(itemName1));

xml文件:

<select id="selectlinkage" parameterType="java.lang.String"
        resultType="com.deep.web.func.entity.OrgData">
        select a.itemName from
        <include refid="table_name" /> a 
        <where>
            a.parentId=(select t.id from
            <include refid="table_name" /> t 
            where t.itemName=#{itemName}
            )
        </where>
    </select>

猜你喜欢

转载自blog.csdn.net/weixin_43001280/article/details/82465496
今日推荐