Ajax实现子页面数据带到父页面

原创 2015年11月19日 11:15:00

1.父页面:

  此list数据需从子页面带过来,查询出来为一个list,需装换为json。

2.js

 //发起核查
function getInspect(){
    var flowId = $("#flowId").val();
    var injureId = $("#injureId").val();
    var taskType = $("#taskType").val();
    var url = path+"/inspect/doStartInspectFlow.do?injureId="+injureId+"&taskTypes="+taskType+"&flowId="+flowId;
    window.open(url,"","dialogWidth=1020px,dialogHeight=700px,dialogLeft=100px,dialogTop=120px,resizable=yes,scrollbars=yes");
}

3.struts

    <!-- 发起任务 -->
   <action name="doStartInspectFlow" class="CmInspectAction" method="doStartInspectFlow">
            <result>/jsp/inspect/start_inspect.jsp</result>
    </action>

4.action

public String doStartInspectFlow() throws Exception {
        flowId = this.getParameter("flowId");
        //用于判断子页面执行父页面js
        String backfull = this.getParameter("backfull");
        injureId = this.getParameter("injureId");
        List list = (List) cmCommonService.getDictListByCode("D202").get("D202");
        flows = cmInspectService.getListInspectFlowDTO(injureId);
        /*for (int i = 0; i < list.size(); i++) {    // 任务列表中移除已发起的任务
            MdDictElement e = (MdDictElement) list.get(i);
            if (flows == null || flows.size() == 0) {
                taskTypeList = list;
                break;
            }
            boolean contains = false;
            for (int j = 0; j < flows.size(); j++) {
                flows.get(j).setInitiatorDate(flows.get(j).getInitiatorDate().substring(0, 19));
                if (flows.get(j).getTaskType().equals(e.getDictCode())) {
                    contains = !contains;
                }
            }
            if (!contains) {
                taskTypeList.add(e);
            }
        }*/
        taskTypeList=list;
        if(backfull!=null){
            setAttribute("backfull", "backfull");
        }
        return Constant.SUCCESS;
    }

5.子页面保存js

function save() {
            var handlername=$("#handlerName").val();
            if(handlername.length>0){
                if ($(":checked").size() > 0) {
                    var audiname=$("#treeorg").val();
                    $("form:first").attr("action", "<%=path%>/inspect/doAddInspectFlow.do?autiname="+audiname); //执行action

                    $("form:first").submit();
                }else{
                    alert("请选择任务类型!");
                }
            }else{
                alert("请选择任务接收人!");
            }
        }
        <c:if test="${backfull=='backfull'}">
            $(function(){
                
                window.parent.opener.document.getElementById("backfullval").value='${injureId}';
                window.parent.opener.backfull(); //父页面执行ajax方法
            });
        </c:if>

6.父页面执行ajax方法

//发起核查-从子页面刷新到父页面
function backfull(){
    var injureId=$("#backfullval").val();
     $.ajax({
        type: "POST",
        async:false,
       url: getRootPath()+"/inspect/doLoadInspectInform.do?injureId="+injureId,
        success: function(data){
                var str='';
                $("#backfull").html("");
                for(var i=0;i<data.length;i++){
                    var str1='';
                    if(data[i].taskState==1){
                        str1='待核查';
                    }else if(data[i].taskState==2){
                        str1='待审核';
                    }else if(data[i].taskState==3){
                        str1='审核完成';
                    }
                    str+='<tr>';
                str+='        <td style="width: 25%;">';
                str+=        data[i].taskName;
                str+='        </td>';
                str+='        <td style="width: 25%;">';
                str+=        new Date(data[i].initiatorDate).format('yyyy-MM-dd hh:mm:ss');
                str+='        </td>';
                str+='        <td style="width: 25%;">';
                str+=        str1;
                str+='        </td>';
                str+='        <td style="width: 25%;">';
                str+='        <input type="button" onclick="toDetail(\''+data[i].id+'\',\''+data[i].injureId+'\',\''+data[i].taskType+'\');" class="button" value="详细"/>';
                str+='        </td>';
                str+='</tr>';
                }
                $("#backfull").append(str);
                $("#InspectFlowId").show();
                if ($("#InspectFlowId").find(".list-data-show").is(":hidden")) {
                    $("#InspectFlowId").find(".title").click();
                }
        }
     });
};

7.ajax action

public void doLoadInspectInform() throws Exception {
        HttpServletRequest request=getRequest();
        String injureId = request.getParameter("injureId");
        List inspectList = cmInspectService.getListInspectFlowDTO(injureId);
        HttpServletResponse response = getResponse();
        response.setContentType("text/json;charset=utf-8");
        PrintWriter out = response.getWriter();
        out.print(JSON.toJSONString(inspectList).toString());
        out.flush();
        out.close();
    }

8.附加

//JS格式化时间  毫秒-24小时
Date.prototype.format =function(format){
        var o = {
            "M+" : this.getMonth()+1, //month
            "d+" : this.getDate(), //day
            "h+" : this.getHours(), //hour
            "m+" : this.getMinutes(), //minute
            "s+" : this.getSeconds() //second
        }
        if (/(y+)/.test(format))
          format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for ( var k in o)
            if (new RegExp("(" + k + ")").test(format))
                format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]: ("00" + o[k]).substr(("" + o[k]).length));
        return format;
};

9.子页面:


版权声明:本文为博主原创文章,未经博主允许不得转载。

利用ajax实现与php数据交互,并局部刷新页面

利用ajax实现与php数据交互,并局部刷新页面 一、语法简介 1.1 ajax基本语法 $.ajax({     type: "post",                     ...

利用JQuery+Ajax实现aspx页面无刷新的动态数据绑定

我们在写asp.net网页的时候,会用到很多需要数据绑定的控件。Asp.net提供了数据绑定这一特性,确实方便了很多。但是这样的绑定都是在服务器端完成的,而我们有时会希望根据用户的选择来动态的更新其它...

利用ajax实现与php(json数组)数据交互,并局部刷新页面

利用ajax实现与php数据交互,并局部刷新页面 本文主要有以下几个要点: ajax的基本语法结构jQuery基本语法json数组基本结构ajax回调函数中的json数组解析及局部刷新php基本语...

struts2使用ajax实现页面和action之间通过json数据交互

要在struts2中使用json数据交互,需要导入以下包 当然,struts2应用核心包也要导入...

利用ajax实现与php数据交互,并局部刷新页面

利用ajax实现与php数据交互,并局部刷新页面本文主要有以下几个要点: ajax的基本语法结构 jQuery基本语法 json数组基本结构 ajax回调函数中的json数组解析及局部刷新 php基本...

Ajax 实现静态刷新页面 带加载旋转图片

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> http://www.w3.org/1999/xhtml">      ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ajax实现子页面数据带到父页面
举报原因:
原因补充:

(最多只允许输入30个字)