js基本使用-前后台交互(工作问题及解决方法记录)

12 篇文章 1 订阅

1、arrayObj.push(data)、row.cells[0]:

var arrayObj = new Array(); (var fdIds = [];) 
var data={};

var row = document.getElementById("edittr_"+index);
var busId = row.cells[0].getElementsByTagName("input")[0].value;
var sonName = row.cells[1].getElementsByTagName("input")[0].value;
var birthDate = row.cells[2].getElementsByTagName("input")[0].value;
var named = row.cells[3].getElementsByTagName("select")[0].value;
var workAndPosition = row.cells[4].getElementsByTagName("input")[0].value;
var cardType = row.cells[5].getElementsByTagName("select")[0].value;
var cardNumber = row.cells[6].getElementsByTagName("input")[0].value;
var busFlag = row.cells[7].getElementsByTagName("select")[0].value;
var uploadyear = row.cells[8].getElementsByTagName("select")[0].value;
var bussinessDeclare = row.cells[9].getElementsByTagName("textarea")[0].value;
var type = row.cells[11].getElementsByTagName("input")[0].value;

data["busId"] = busId;
data["sonName"] = sonName;
data["birthDate"] = birthDate;
data["named"] = named;
data["workAndPosition"] = workAndPosition;
data["cardType"] = cardType;
data["cardNumber"] = cardNumber;
data["busFlag"] = busFlag;
data["uploadyear"] = uploadyear;
data["bussinessDeclare"] = bussinessDeclare;
data["type"] = type;
arrayObj.push(data);
function getTABLE_DocList(){
     var arrayObj = new Array();
     $("input[name='List_Selected']").each(function(){        //遍历checkbox的选择状态
         if($(this).prop("checked")){                        //如果值为checked表明选中了
             var tdArr = $(this).parent("td").parent("tr");  //获取选中行
             var fdid = tdArr.find("input[name='List_Selected']").val();
             var dnjdsigned = tdArr.find("select[name='dnjdsigned']").val();
             var ffclsigned = tdArr.find("select[name='ffclsigned']").val();
             var bussigned = tdArr.find("select[name='bussigned']").val();
             var dutytype = tdArr.find("select[name='dutytype']").val();

             var data={};
             data["fdid"] = fdid;
             data["dnjdsigned"] = dnjdsigned;
             data["ffclsigned"] = ffclsigned;
             data["bussigned"] = bussigned;
             data["dutytype"] = dutytype;
             arrayObj.push(data);
         }
     });

     var checkbox = $("input[type='checkbox']").is(':checked');
     if (!checkbox){
     }
     return arrayObj;
 }

在这里插入图片描述

2、$(this).prop(“checked”)

function ExportNzdalist(){
  var fdIds = [];
   var allCheckbox = $("input[name='List_Tongle']").prop("checked");
   if(!allCheckbox){
       $("input[type='checkbox']").each(function(){ //遍历checkbox的选择状态
           if($(this).prop("checked")) {            //如果值为checked表明选中了
               fdIds.push($(this).val());
           }
       });
       listExport('${LUI_ContextPath}/pro/relatework/pro_relatework_jjjc_inspectassert/proRelateworkJjjcInspectassert.do?method=listExport&fdModelName=com.landray.kmss.pro.relatework.model.ProRelateworkJjjcInspectassert&fdIds='+fdIds)
   }else {
       listExport('${LUI_ContextPath}/pro/relatework/pro_relatework_jjjc_inspectassert/proRelateworkJjjcInspectassert.do?method=listExport&fdModelName=com.landray.kmss.pro.relatework.model.ProRelateworkJjjcInspectassert');
   }
}

3、<c:if> <c:forEach>

<%
	bussinessList = proRelateworkJjjcPersonmsgService.getRelativeBusiness(userCode2,userName2);
	request.setAttribute("bussinessList",bussinessList);
%>

<c:if test="${ bussinessList.size() > 0}">
    <c:forEach items="${bussinessList}" var="bussinessMap" varStatus="varStatus">
        <tr class="showtr_${varStatus.index}" >
            <td width='2%'>
                <input type="checkbox" style="display: none" class="showcheckbox" name="bussinessId" value="${bussinessMap.busDeclareId}">
                <span name="busId" >${varStatus.index+1}</span>
            </td>
            <td width="5%" align="center">
                <xform:text property="sonName" className="sonName" value="${bussinessMap.sonName}" />
            </td>
            </tr>
    </c:forEach>
</c:if>

4、通过标签id\name\class去设置标签style

<style>
    #criteria1 .lui_item_sign{
        display: none !important;
    }
    #lui-id-17 .criterion-collapse #lui-id-18 .criterion-all {
        display: none !important;
    }
</style>

5、request对象的使用

String userCode2 = request.getParameter("userCode1");
<html:hidden property="userid" value="<%=userCode2%>"/>

6、通过标签id\name\class获取value

/**
 *点击保存后调用
 */
function checkParam() {
    var fileNameArray = $(".upload_list_filename_title");
    var selectYear = document.getElementById("uploadyear").value;
	console.log(selectYear);

    if(fileNameArray.length<1) {
        seajs.use(['lui/dialog'],function(dialog) {
            dialog.alert('至少选择一个附件');
        });
        return false;
    }

    if(selectYear == "") {
        seajs.use(['lui/dialog'],function(dialog) {
            dialog.alert("请选择年份");
        });
        return false;
    }
    return true;
}

7、弹出窗口

dialog.confirm('${ lfn:message("page.comfirmDelete") }', function(isOk) {
    if(isOk) {
    delCom_OpenWindow(delUrl);
}

dialog.alert('删除失败!');

console.log(selectYear);

8、.attr()、location.href、encodeURI(’<%=userName2%>’)

//对userName2编码
location.href= "${LUI_ContextPath}/pro/relatework/pro_relatework_jjjc_personmsg/proRelateworkJjjcDnjdAttach.jsp?userName1="+
encodeURI('<%=userName2%>')+"&userCode1="+encodeURI('<%=userCode2%>');

var url = data.bsMsgUrl+"/DocRead_Entry.do?folderID=5&taskId=null&operator=edit&tableName=RLZY_YGDJ&docID="+data.docId+"&subjectId=6699&showName=" +
encodeURI('员工信息')+"&formID="+data.formId+"&name="+encodeURI(data.userName)+"&dyjlFlag=dyjl";

$(window.parent.document).find("#personmsg .lui_widget_iframe").attr("src",url);
$(window.parent.document).find("#personmsg .lui_widget_iframe").attr("src","${LUI_ContextPath }/resource/jsp/list_norecord.jsp");   

<ui:iframe  id="personmsg" src="${LUI_ContextPath }/pro/relatework/pro_relatework_jjjc_personmsg/proRelateworkJjjcPersonmsg_view.jsp?userCode1=${fdCode0}" ></ui:iframe>

9、点击按钮或选择option,标签内容的隐藏和显示

/**
*选中intoinspectflag按钮,bussigned标签内容显示
*/
function changeInspectflag(){
    $("#bussigned:checked").attr("checked",false);//刷新bussigned的选择状态,重新选择按钮
    var intoinspectflag = $(':radio[name="intoinspectflag"]:checked').val();//获取选择状态
    if (intoinspectflag=="Y") {
        $("#bussigned").show();//bussigned按钮显示
        $(':radio[name="bussigned"]').attr("validate","required");//更新标签的属性值
    }else {
        $("#bussigned").hide();//bussigned按钮隐藏
        $(':radio[name="bussigned"]').attr("validate","unrequired");  //更新标签的属性值
    }
}

/**
*type 选择postChange,newDeptAndPosition标签内容显示
*/
function changeTypeflag(){
    var typeflag =  $("#type option:selected").val();
    if (typeflag=="postChange") {
        $(".newDeptAndPosition").css("display","");
    }else {
        $(".newDeptAndPosition").css("display","none");
    }
}

10、 ajax请求模板

前台:
function submitForm(){
    var arrayObj = getTABLE_DocList();
    if(arrayObj.length > 0) {
        var url = "${LUI_ContextPath}/pro/relatework/pro_relatework_jjjc_inspectassert/proRelateworkJjjcInspectassert.do?method=updateFormByIds"
        $.ajax({
            type: "post",
            url: url,
            //data:$.param({"List_Selected":busIds},true),
            data: {"data": JSON.stringify(arrayObj)},//js对象转换为json对象
            async: true,//true:异步请求(请求无序),false:同步请求(请求按顺序)
            dataType: "json",
            success: function (data) {
                if(data.status == "Y" && confirm("保存成功!") == true) {
                   location.href= "${LUI_ContextPath}/pro/relatework/pro_relatework_jjjc_inspectassert/index.jsp";
                   parent.location.reload();//当async: true时,reload()可能在请求没结束时已加载。
                   // window.location.reload();
                }else if(data.status == "N") {
                    seajs.use(['lui/dialog'],function(dialog) {
                        dialog.alert('保存失败!');
                    });
                }
            },
            error : function(){
                seajs.use(['lui/dialog'],function(dialog) {
                    dialog.alert('保存失败!');
                });
            }
        });
    }
}

后台:
//String[] busIds = request.getParameterValues("List_Selected");
net.sf.json.JSONArray jsonArray = net.sf.json.JSONArray.fromObject(request.getParameter("data"));//json转java
JSONObject rtn = new JSONObject();//json数据
rtn.put("status","Y");
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(rtn.toString());//后台传字符串到前台

前台传字符串-后台接收:
data:{"fdiD":fdiD}
String  fdiD= request.getParameter("fdiD");
前台传数组-后台接收:
data:$.param({"List_Selected":busIds},true),
String[] busIds = request.getParameterValues("List_Selected");
前台传数组-后台接收:
data: {"data": JSON.stringify(arrayObj)},
net.sf.json.JSONArray jsonArray = net.sf.json.JSONArray.fromObject(request.getParameter("data"));

js、json、java三者的转换
JSON.parse() 方法用来解析JSON字符串,构造由字符串描述的JavaScript值或对象。
JSON.stringify() 方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串
fromJson() 方法将JSON字符串解析为java对象
toJson() 方法将Java对象转换为JSON



11、第三方接口

1、请求方:
String result = "";
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
Map<String,String> map = new HashMap<String,String>();
map.put("usercode",usercode);
HttpEntity<String> entity = new HttpEntity(map, headers);

ProBaseConfig config = new ProBaseConfig();
String jjjcUrl = config.getValue("jjjc.getPersonMsgByUserCode");

//String  jjjcUrl = "http://localhost:8050/relatework/getPersonMsgByUserCode";


result = restTemplate.postForObject(jjjcUrl, entity, String.class, new Object[0]);

JSONObject jsonResult =new JSONObject();
jsonResult = JSONObject.fromObject(result);//字符串转换为JSONObject 
data = jsonResult.getString("data");//获取JSONObject 的data字段
//data字段数据先转换为json数据,在转换为java对象
JjjcPersonMsg datas =JSONObject.toBean(JSONObject.fromObject(data),JjjcPersonMsg.class);

2、接收方:
@RestController
@Api(tags = "1.0.2",value = "纪检监察接口")
@RequestMapping(path = "/relatework",produces = {MediaType.APPLICATION_JSON_VALUE})
public class RelateworkJjjcApi {

	   @Autowired
	   private Doc_RLZY_YGDJ doc_RLZY_YGDJ;
	
	   @ApiOperation(value = "个人信息接口")
	   @PostMapping(path = "/getPersonMsgByUserCode")
	   public Result getPersonMsgByUserCode(@RequestBody Map<String,String> map){
	       String usercode = map.get("usercode");
	       if (null == usercode || "".equalsIgnoreCase(usercode)){
	           return ResultUtil.error(ResultEnum.PARAM_BLANK_ERROR.getCode(),"账户不能为空");
	       }
	       JjjcPersonMsg jjjcPersonMsg = doc_RLZY_YGDJ.getPersonMsgByUserCode(usercode);
	       return ResultUtil.success(jjjcPersonMsg);//返回 Result对象
	   }
}


public static Result success(Object object) {
        Result result = new Result();
        result.setCode(ResultEnum.SUCCESS.getCode());
        result.setMsg(ResultEnum.SUCCESS.getMsg());
        result.setData(object);
        return result
}

12、request.getParameter、request.getParameterValues、request.getParameterMap

对于getParameter()、getParameterValues()、getParameterMap()用法。首先request中的参数parameter是一个map表,如下例:
map={username=[xxx],password=[xxx],hobby=[eat,drink]}

调用getParameter(“hobby”)时只能获取hobby[0] ,即eat

调用getParameterValues(“hobby”)时能获取hobby=[eat,drink]这个数组

调用getParameterMap时能获取整个map对象。
链接:https://blog.csdn.net/qq_23121031/article/details/77334430

13.提示框

workinfo.jsp

function bj(sys_id,infomationMtName){
	var url="/OMSS/generalclass/BMYW/JCSSTZGLB/RYFG/txOrlsxUpdateData.jsp?id="+sys_id+"&infomationMtName="+infomationMtName;
	$.XYTipsWindow({
			___title:"人员维护修改",
			___content:"iframe:"+url,
			___width:"800",
			___height:"240",
			___drag:"___boxTitle",
			___showbg:true
		});
}	

$("#closepp").click(function(){
	$.XYTipsWindow.removeBox();//点击提示框关闭按钮,移除提示框
});

txOrlsxUpdateData.jsp

function returnData(){ 
	parent.$.XYTipsWindow.removeBox();//点击提示框关闭按钮,移除提示框
}

13.后台数据传到前台后拼接成js对象,然后赋值到标签中($("#pending2>tbody").html(html);)

//查询记录
function findPendingData(){
	var searchName = $("#searchName").val(); 
	$("#pending1").css("display","none");
	$("#pending3").css("display","none");
	$("#pending2").css("display","");
	var ret = getTestAjaxPost("RYFG.PersonalMantain/getWorkInfo",encodeURI("searchName="+searchName));
	if(ret!=null){
		var dataObj = eval("("+ret+")");
		var datas = dataObj.info;
		var dataList = datas.datas;
		var html = "";
		var j=0;
		for(var i=0;i<dataList.length;i++){
			var sys_id = dataList[i].sys_id;
			var FFullName = dataList[i].FFullName;
			var sys_control2 = dataList[i].sys_control2;
			var subjectId = dataList[i].subjectId;
			var sys_type = dataList[i].sys_type; 
			var sys_control3 = dataList[i].sys_control3;
			var personNamemap = dataList[i].personNamemap;//map数据
			var j=j+1;
			html = html + "<tr bgcolor='#ffffff'><td align='center'>"+j+"</td>";
			html = html+"<td align='center'>"+FFullName+"<input type='hidden' name='project_infomationMt_parentId' id='project_infomationMt_parentId' value='"+sys_id+"'></td>";
			$.each(personNamemap,function(key,value){	//map数据				
				html = html+"<td align='center'>"+value+"</td>";				
			});
			html = html+"<td align='center'><input type='button' onclick='bj("+sys_id+")' style='margin-left:10px;margin-rigth:20px;' value='编辑'/></td></tr>";				
		}
		$("#pending2>tbody").html(html);	//js字符串对象赋值到标签
	}else{
		return false;
	}		
}

14.设置select 中选中的option

1、$(".selector").find(“option[text=’<%=curUserDepartmentID%>’]”).attr(“selected”,true);
2、 name="<%=strDeptSelId%>_show"

<%
	String strDeptSelId = "problemdeptcode"; //原查询页面部门id名
%>
<select class="selector" name="<%=strDeptSelId%>_show" id="<%=strDeptSelId%>_show" onchange="setDeptSearchValue(this,<%=strDeptSQLMethod%>);selectThisValue(this)">   
	<option value='' selected>请选择</option> 
	<%
		out.println(" if(typeof "+strDeptShowFlag+"_show=='undefined')"+strDeptShowFlag+"_show=document.getElementById('"+strDeptShowFlag+"_show'); ");					
		//查询OMSS后台表
		DeptInfoObj[] deptinfos = GetCompGroupInfo.getDeptGroup();
		if(deptinfos!=null && deptinfos.length>0)
		{
			out.println("for( var u=f1."+strDeptSelId+"_show.length-1; u >-1; u--)");
			out.println("	f1."+strDeptSelId+"_show[u]=null;");
			out.println("f1."+strDeptSelId+"_show.add(new Option(\"请选择\", \"\"));");	
			for(int i=0;i<deptinfos.length;i++){						
				//21:value为OMSS后台code;
				//IE、谷歌都适用
				out.println("<option value='"+deptinfos[i].getDptcode()+"'>"+deptinfos[i].getDptname()+"</option>");	
//谷歌不适用,兼容性问题
out.println(strDeptSelId+"_show.add(new Option(\""+deptinfos[i].getDptname()+"\",\""+deptinfos[i].getDptcode()+"\"));");			
			}
		}					
	%>
</select>

onmouseover +转义字符

//onmouseover 事件会在鼠标指针移动到指定的元素上时发生
td7.innerHTML="<input name='YZB_JJKJ_DGTZS_SON1.fzrlxfs' value='"+tghlxfs+"' onmouseover='displayTrusteeInfo(this,"+'\"'+jjId+'\"'+","+gwid+")' >";
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值