代码如下:

< script type = "text/javascript" >
    var flag = "<%=request.getParameter("
flag ")%>";
if (flag != "true") {
    flag = false;
} else {
    flag = true;
}
var reginTree = {
    setting: {
        view: {
            fontCss: {
                color: "#000"
            }
        },
        check: {
            enable: true,
            chkboxType: {
                "Y": "p",
                "N": "p"
            }, //加上ps  当点击父节点时子节点全部选中
            children: "children"
        },
        data: {
            key: {
                checked: "checked"
            },
            simpleData: {
                enable: true,
                idKey: "id",
                pIdKey: "pId",
                rootPId: 0
            }
        }
    },
    //获取ztree对象
    getZtreeObj: function(id) {
        var zTree;
        if ($.fn.zTree.getZTreeObj(id) != null && $.fn.zTree.getZTreeObj(id) != undefined) {
            zTree = $.fn.zTree.getZTreeObj(id);
        }
        return zTree;
    },
    //初始化ztree
    loadZtree: function(json, id, treeNode, callback) {
        var setter = $.extend({}, reginTree.setting, json);
        $.fn.zTree.init($('#' + id), setter, treeNode);
        var zTree = reginTree.getZtreeObj(id);
        if (callback) callback();
    },
    //加载ztree
    loadArea: function(bal, regionIdList) {
        var regionJson = {
            "level": "2"
        };
        var treeNode = [];
        _public_.getJson(regionJson, "frontServer?busiCode=02060203").done(function(data) {
            if (data.returnCode == "Y") {
                for (var i = 0; i < data.regionList.length; i++) {
                    var id = data.regionList[i].rid;
                    var pId = data.regionList[i].pid;
                    var name = data.regionList[i].regionName;
                    var json = {
                        "id": id,
                        "name": name,
                        "pId": pId
                    };
                    if (bal) {
                        if (reginTree.setbal(regionIdList, json.id)) {
                            json.checked = true;
                        }
                    }
                    treeNode.push(json);
                }
                console.dir(treeNode);
            } else {
                console.log("加载数据失败");
            }
            reginTree.loadZtree({
                callback: {
                    onCheck: reginTree.zTreeOnCheck
                }
            }, 'tree', treeNode, function() {
                var treeObj = reginTree.getZtreeObj('tree');
                var nodes = treeObj.getCheckedNodes(true);
                $.each(nodes, function(i, value) {
                    treeObj.expandNode(value, true, false, true);
                });
            });
        });

$('#tree').css({
            'width': '400px',
            'height': '450px',
            'overflow': 'auto'
        });
        $('#tree').parent().css({
            'width': $('#tree').get(0).offsetWidth + 'px',
            'height': $('#tree').get(0).offsetHeight + 'px'
        });

},
    //ztree节点选中   当选中节点时树形 结构展开
    zTreeOnCheck: function(event, treeId, treeNode) {
        var treeObj = reginTree.getZtreeObj('tree');

if (treeNode.checked == true) {
            //单选控制
            treeObj.checkAllNodes(false);
            treeObj.checkNode(treeNode, true, true, false);

var oner = treeObj.getCheckedNodes(true);
            treeObj.expandNode(treeNode, true, false, true);
        }
        /* var nodes = treeObj.getCheckedNodes(true);
        console.dir(nodes); */

/* var treeObj = reginTree.getZtreeObj('tree'),
            nodes = treeObj.getCheckedNodes(true),
            v = "";
        for (var i = 0; i < nodes.length; i++) {
            v += nodes[i].name + ",";
            alert(nodes[i].id + "," + v); //获取选中节点的值
        } */
    },
    getCheckNode: function(id, bal, param) {
        var zTree = reginTree.getZtreeObj(id);
        var nodes = zTree.getCheckedNodes(bal);
        var arr = [];
        var i = 0;
        var len = nodes.length;
        console.dir(nodes);
        for (i = 0; i < len; i++) {
            arr.push(nodes[i][param]);
        }
        return arr.join();
    },
    setbal: function(regionIdList, id) {
        var arr = regionIdList.split(',');
        var i = 0;
        var len = arr.length;
        for (i = 0; i < len; i++) {
            if (arr[i] == id) {
                return true;
                break;
            }
        }
    }
};

$(function() {
    $(".submit").on("click", function() {
        var regionIds = reginTree.getCheckNode("tree", true, "id");
        if (flag == true) {
            var jsonr = {
                "regionIds": regionIds
            };
            _public_.getJson(jsonr, "frontServer?busiCode=SYSRegionGetAllName").done(function(data) {
                window.opener.setRegionIds(data.regionAllName, regionIds);
                window.close();
            });
        } else {
            window.opener.setRegionIds("", regionIds);
            window.close();
        }
    });
});
var regionJson = {};
var regionIdList = window.opener.getRegionIds();
var bal = false;
if (regionIdList != null || regionIdList != "") {
    /* regionJson = {"regionIdList":regionIdList}; */
    bal = true;
}

//console.dir(regionJson);

reginTree.loadArea(bal, regionIdList); < /script>

通过ajax 后台传递的 区域id 选中ztree的节点 并展开节点的更多相关文章

  1. ajax向后台传递数组参数并将后台响应的数据赋值给一个变量供其它插件使用

    1.在js中封装ajax向后台传递数组参数函数 //combogrid * * @Description 封装ajax向后台传递数组参数并将后台响应的数据赋值给一个变量方便其他插件使用该数据函数 * ...

  2. ajax获取后台传递的json数据

      最近在使用JQuery的ajax方法时,需要返回的数据为json数据,在success返回中数据处理会根据返回方式不同会采用不同的方式来生成json数据.在$.ajax方法中应该是如何来处理的,简 ...

  3. ajax如何向后台传递数组,在后台该如何接收的问题(项目积累)

    一.后台如何接收从前台接收的数组: 使用request.getParameterValues(String xxx); <input type="text" name=&qu ...

  4. 【转】jQuery.ajax向后台传递数组问题

    $.ajax({ url: "/xxx", type: "GET", data: { "boxIds": boxIds, "box ...

  5. jQuery.ajax向后台传递数组问题

    今天重温了一个问题,jQuery.ajax向后台传递一个数组,而在后台接收不到该值 前台js方法部分代码如下: //创建一个测试数组 var boxIds = new Array(); boxIds. ...

  6. Ajax向前后台传递json和转换

    学生管理系统MVC模式设计心得: jquery .ajax提交data数据格式 jquery 的Ajax方法提交数据,但是是多个参数,具体data的格式如下: data提交的数据类型为:Object  ...

  7. 基于layUI调用后台数据实现区域信息级联查询

    基于layUI调用后台数据实现区域信息级联查询 1.基本思路 后台提供根据区域编码查询区域列表公共接口 页面初始化调用后台接口加载所有省份 点击省份将省份区域编码传入后台查询该省份下所有地市信息,以此 ...

  8. jquery 根据后台传递过来的三维数组动态生成三级菜单

    根据后台传递过来的三维数组动态生成三级菜单 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  9. jquery ajax post 传递数组 ,多checkbox 取值

    jquery ajax post 传递数组 ,多checkbox 取值 http://w8700569.iteye.com/blog/1954396 使用$.each(function(){});可以 ...

随机推荐

  1. Eclipse通过jdbc连接oracle数据库

    首先要有包 然后,在项目中加载进去- 最后就是代码了 import java.sql.*;public class GetConn {public Connection getConnection() ...

  2. web.Config配置数据库的连接

    <!--连接字符串设置--> <connectionStrings> <add name="ConnString" connectionString= ...

  3. Python 修饰符

    def hello(fn):    def wrapper():        print "hello"        fn()        print "goodb ...

  4. Oracle中DBLink的使用

    DBLink 的作用是在局域网内,通过一台服务器上面的数据库访问另外一台服务器上面数据库的功能. 下面简单的介绍DBLink的配置: 服务器A:IP 10.10.10.107, 数据库实例名:orcl ...

  5. Custom Web Servic In MOSS 2007

    Tools: Visual Studio 2008,Visual Studio 2008 Command Prompt, Sharepoint Server 2007 Generate .disco ...

  6. php file_get_contents() 用法

    php 需要访问某个网页 <?php $fh= file_get_contents('http://www.baidu.com/'); echo $fh; ?> 知识扩充 file_get ...

  7. 节约内存:Instagram的Redis实践(转)

    一.问题:     数据库表数据量极大(千万条),要求让服务器更加快速地响应用户的需求. 二.解决方案:      1.通过高速服务器Cache缓存数据库数据      2.内存数据库 三.主流解Ca ...

  8. Android之ViewPager组件实现左右滑动View

    什么是ViewPager VIewPager是安卓3.0之后提供的新特性,继承自ViewGroup,专门用来实现左右滑动切换View的效果.如果想向下兼容需要 android-support-v4.j ...

  9. java 事件处理机制:按下上下左右键控制小球的运动

    /** * 加深对事件处理机制的理解 * 通过上下左右键来控制一个小球的位置 */package com.test3;import java.awt.*;import javax.swing.*;im ...

  10. Shell父进程获取子进程的变量值

    #!/bin/kshshit=""export shitshit=$(su - grid -c 'echo $ORACLE_BASE')pvar=$(subvar="he ...