javaScript(拼写树形)+ajax请求,去后台查找数据

第一步:页面加载完成时,利用jquery中的一函数,调用js方法,js方法,发送ajax请求,去后台查找父类权限集合,响应回来json格式的数据,对数据进行操作,往页面上添加内容

 1 //页面初始化加载菜单内容
 2     $(document).ready(function(){
 3         loadPower(0);
 4     });
 5
 6 //加载一级权限菜单
 7     function loadPower(pId){
 8         $.ax({
 9             type: "get",
10             url: "<%=request.getContextPath()%>/master/sysPower_loadParentPower.action?sysPower.sysParentId="+pId,
11             async: false,
12             dateType: "json",
13             success: function(resp){
14                 var powers = resp["rows"];
15                 if(powers.length>0){
16                     var showPowers = $("#showPowers").html();
17                     for(var i=0;i<powers.length;i++){
18                         showPowers += "<li id='"+powers[i].sysPowerId+"'><a href='javascript:void(0)' onclick=\"loadChildPower('"+powers[i].sysPowerId+"');\">"+powers[i].sysPowerName+"</a><div  class='opt'><a href='javascript:void(0)' onclick=\"updatePower('"+powers[i].sysPowerId+"');\">编辑</a> | <a href='javascript:void(0)' onclick=\"deletePower('"+powers[i].sysPowerId+"');\">删除</a> </div></li>";
19                     }
20                     $("#showPowers").html(showPowers);
21                 }
22             }
23         });
24     }

第二步:在拼写的页面中,添加操作的请求地址。例如(加载父权限下的子权限,修改,删除操作的url请求后台的地址)

//加载二级权限菜单
    function loadChildPower(pId){
        if($("#"+pId).find("ul").length==0){
            $("#"+pId).append("<ul></ul>");
            $.ax({
                type: "get",
                url: "<%=request.getContextPath()%>/master/sysPower_loadParentPower.action?sysPower.sysParentId="+pId,
                async: false,
                dateType: "json",
                success: function(resp){
                    var powers = resp["rows"];
                    if(powers.length>0){
                        for(var i=0;i<powers.length;i++){
                            $("#"+pId).find("ul").append("<li id='"+powers[i].sysPowerId+"'>"+powers[i].sysPowerName+"<div  class='opt'><a href='javascript:void(0)' onclick=\"updatePower('"+powers[i].sysPowerId+"');\">编辑</a> | <a href='javascript:void(0)' onclick=\"deletePower('"+powers[i].sysPowerId+"');\">删除</a> </div> </li>");
                        }
                    } else {
                        $("#"+pId).find("ul").append("<li>暂无下级权限 <div  class='opt'>无操作</div></li>");
                    }
                }
            });
        } else {
            //显示\隐藏菜单
            if($("#"+pId).find("ul").css("display")=="block"){
                $("#"+pId).find("ul").css("display","none");
            } else {
                $("#"+pId).find("ul").css("display","block");
            }
        }
    }

View Code

第三步:修改和删除权限的js操作

 

//编辑
    function updatePower(powerId){
        window.open("<%=request.getContextPath()%>/master/sysPower_findPowerById.action?sysPower.sysPowerId="+powerId,"","height=400,width=600,top=200,left=450,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no");
    }
    //删除
    function deletePower(powerId){
        if(window.confirm("确认删除?"))
        $.ax({
            type:"get",
            url:"<%=request.getContextPath()%>/master/sysPower_deletePower.action?sysPower.sysPowerId="+powerId,
            async: false,
            //dataType:"json",
            success:function(resp){
                if(resp==true){
                    $("#"+powerId).remove();
                }
            }
        });
    }

View Code

 第四步:当是修改权限的时候,向后台发送ajax请求((会打开一个新的窗口,子页面)),查处该权限的信息,然后回显到新窗口。提交新窗口的form表单修改,响应回一个页面,页面上一个按钮,用来刷新父页面,是修改权限的窗口。

 

//子窗口回显信息的form表单
<form action="<%=request.getContextPath() %>/master/sysPower_updatePower.action" method="post">
    <div class="formbody">

    <div class="formtitle"><span>权限详情</span></div>

    <ul class="forminfo">
    <input name="sysPower.sysPowerId" type="hidden" class="dfinput" value="${sysPower.sysPowerId }" />
    <input name="sysPower.sysParentId" type="hidden" class="dfinput" value="${sysPower.sysParentId }" />
    <li><label>权限名称</label><input name="sysPower.sysPowerName" type="text" class="dfinput" value="${sysPower.sysPowerName }" /></li>
    <li><label>权限URL</label><input name="sysPower.sysPowerUrl" type="text" class="dfinput" value="${sysPower.sysPowerUrl }" /></li>
    <li><label>权限排序</label><input name="sysPower.sysSort" type="text" class="dfinput" value="${sysPower.sysSort }" /></li>
    <li>
        <label>&nbsp;</label><input name="" type="submit" class="btn" value="提交修改" />
    </li>
    </ul>

    </div>
    </form>

//提交form表单后,响应回来的页面,有一个按钮,出动js方法,刷新父窗口内容,让父窗口是修改后的显示

<script type="text/javascript">
        function freshAndClose(){
            window.opener.location.reload(true);
            setTimeout("window.close()",500);
        }
    </script>

</head>

<body>

    更新成功<br/>
    <input type="button" class="btn" value="关闭" onclick="freshAndClose();"/>

</body>

View Code

 

 

 

 

 

 

 

时间: 2024-09-20 05:40:35

javaScript(拼写树形)+ajax请求,去后台查找数据的相关文章

js-发送ajax请求到后台获取的数据不能显示到弹框&amp;amp;lt;div&amp;amp;gt;中

问题描述 发送ajax请求到后台获取的数据不能显示到弹框<div>中 点击按钮发送ajax请求到后台获取的数据,div能弹出来,但是下面的数据不显示,如下图(块里面为空,无数据,只有表头): 在html的标签中的代码:<br> <img src="http://img.ask.csdn.net/upload/201511/23/1448285257_457694.jpg" alt="图片说明"><br> 红框①中的数据

java spring ajax jsp-jsp页面通过$.ajax请求java后台,但是页面跳转了

问题描述 jsp页面通过$.ajax请求java后台,但是页面跳转了 js代码: function sendForm() { alert("12345"), $.ajax({ type : "get", url : "code/checkcode", data : { "codeNum" : $("#codeNum") }, dataType : "json", success : fu

浅析jQuery Ajax请求参数和返回数据的处理_jquery

刚接触学会用jQuery ajax的时候,觉得真东西好神奇,这样就可以把数据取回来了啊.然后我可以把取回来的数据渲染到页面上,一颗赛艇. 之前很早接触到项目,并不知道怎么优雅的去用jquery ajax(现在也不优雅): 那个时候看别人写的代码 有 $.post("","",...) 也有 $.get("","",...) 还有 $.ajax() 当然现在知道点,这些写法都是一个意思,还是习惯用 $.ajax() 写写吧. 之

巧用ajax请求服务器加载数据列表时提示loading的方法

我们利用weui.js中的weui.loading为效果,ajax的beforeSend与complete方法,做一个加载数据时会有几秒的 loading... 要在页面需要加载的JS文件: <script src="../js/libs/weui.min.js"></script> 可以去weui的文档中下载,这是它的demo:   https://weui.io/weui.js/ 这里主要讲jQuery ajax的get,查询数据时,它的结构为: $.aja

Jquery通过ajax请求NodeJS返回json数据实例_jquery

最近看了NodeJS相关的,在网上查了下结合AJAX的应用,感觉应用前景还是不错的.为什么用这个组合呢? 1.NodeJS不需要安装,拷贝过去就可以使用,而环境变量可以只配置在当前cmd窗口,运行方便. 2.通过HTML的ajax请求,可以实现在不同的服务器上,可跨域获取数据. 3.通信数据格式灵活,可以是xml.json.binary等,数据适合任何平台. 在说说我的环境,我使用的是公司提供的电脑,有很多限制,比如是域中电脑,操作权限低,无法安装任何软件,无法修改计算机配置,无法使用U盘等等.

JQUERY的AJAX请求缓存里的数据问题处理_jquery

参数type由get改成post 添加参数cache并设置成false 添加时间戳 $.ajax({ url: 'ios/index', cache: false, type: 'post', data: { timestamp: new Date().getTime() //params here }, dataType: 'json' }).done(function (data) { //codes here }); 是不是非常的简单呢,希望小伙伴们能够喜欢. 以上是小编为您精心准备的的内

防止JQUERY的AJAX请求缓存里的数据

方法一, 参数type由get改成post 添加参数cache并设置成false 添加时间戳  代码如下 复制代码 $.ajax({     url: 'ios/index',     cache: false,     type: 'post',     data: {         timestamp: new Date().getTime()         //params here     },     dataType: 'json' }).done(function (data)

ajax发送请求到后台,后台更具请求参数重新绑定repeater数据源__[无效]

问题描述 第一次进入页面的时候,默认绑定了所有的数据,点击页面分类时,ajax发送请求到后台,后台更具请求参数重新绑定repeater数据源,但是页面显示内容仍然不变.页面:$.ajax({url:"<%=Request.FilePath%>?do=getPsByPTName&studentName="+studentName,cache:false,async:false,success:function(msg){}});后台stringdoss=Request

分享JavaScript监听全部Ajax请求事件的方法_javascript技巧

若Ajax请求是由jQuery的$.ajax发起的,默认情况下可以使用 jQuery的Global Ajax Event Handlers监听到Ajax事件,然而我遇到的却是用原生JavaScript发起的Ajax请求,所以这种方法行不通. 然后呢,还有其他方法,比如说 Pub/Sub,但是这个发起请求的 js 代码我是无法改动的,也就不存在向代码里添加 publish 的问题.同理,jQuery 的 .bind 和 .trigger 也无法使用. 最后,决定使用直接 override XMLH