在做考勤系统的时候,需要将多条件查询的结果显示在同页面的table中,不用跳转页面。下面是效果图
在这里插入图片描述
输入条件点击查询异步加载出数据库的内容。

1.写好html前台代码

这里就是一个table的样式。

<div id="text2">
					<table class="ui nine column table celled table-result"
					id="table-result" data-toggle="table"
					 >
                       <thead>
							<tr>
								<th style = "width :60px">工号</th>
								<th style = "width :60px">姓名</th>
								<th style = "width :60px">入职时间</th>
								<th style = "width :60px">状态</th>
								<th style = "width :60px">备注</th>
								<th style = "width :60px">入职时间</th>								
							</tr>
						</thead>
						<tbody id="text1">//最重要,这是后面ajax获取的id
						</tbody>
					</table>
				</div>

2.写好前端代码,下面来写js

	   function s1(){  
        
        	var start = $("#starttime").val();
        	var finalt = $("#finaltime").val();
         var userstate = document.getElementById("userstate").value;
 		var user = $("#user").val();
 alert(finalt);
        $.ajax({  
            type: "POST",  //提交方式
            dataType: "json",  //数据格式设置
            url: "UserSearch",  //数据处理页面
            data: {  
                user:user, 
                start : start,
				finalt : finalt,
                userstate : userstate
            },  
            success: function (msg) {  //成功时的回调函数
	        $("#text1").html("");//清除之前所生成的tr,不然再次查询会追加到原来的表格中
			$(msg).each(
					
             function (i, values) {
            	 //$(".t").remove();
            	 
                 $("#text1").append(  //这里就是将前端tbody text1 加载内容
                     "<tr><td style = 'width :60px'>"+values.uid+"</td>"
                     +"<td style = 'width :60px'>"+values.uname+"</td>"
                     +"<td style = 'width :60px' >"+values.uworktime+"</td>"
                     +"<td style = 'width :60px' >"+values.ustate+"</td>"
                     +"<td style = 'width :60px' >"+values.unote+"</td>"
                     +"<td style = 'width :60px' >"+values.utime+"</td></tr>"
                 );

             }
         );
            },  
            error: function () {  
                alert("查询失败")  
            }  
        });  
    }  

3.触发这个事件的button代码

<input type="button" id="searchs" value="查询" onclick="s1();fomrReset()"
							class="btn btn-primary btn-lg active"
							style="margin-left: 150px; margin-right: 30px;"></input>

关键代码就是onclick = “s1()”

Servlet处理代码

request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		String user = request.getParameter("user");
		String userstate = request.getParameter("userstate");
		String start = request.getParameter("start");
		String finaltime  = request.getParameter("finalt");
		
		System.out.print(finaltime);
//		user = URLDecoder.decode(user,"utf-8");
//		userstate = URLDecoder.decode(userstate,"utf-8");
//		start = URLDecoder.decode(start,"utf-8");
//		finaltime = URLDecoder.decode(finaltime,"utf-8");
		//多条件查询
				String sql = "select userinform.uid,userinform.uname,uworktime,ustate,unote,utime from note,userinform where note.uid = userinform.uid  ";
				if(user!=null && !user.equals("")){
				    sql += "and userinform.uname like '%"+user+"%'";
				}
				if(userstate!=null && !userstate.equals("")) {
					sql += "and ustate like '%"+userstate+"%'";
					
				}
				if(start!=null && !start.equals("") && finaltime != null && !finaltime.equals("") ) {
					sql +=" and date_format(utime,'%Y-%m-%d') BETWEEN str_to_date('"+start+"', '%Y-%m-%d') AND str_to_date('"+finaltime+"', '%Y-%m-%d')";
				}
				sql +="order by utime desc,uid asc";
//				request.setAttribute("sql", sql);		
//				request.getRequestDispatcher("usershow.jsp").forward(request, response);
//				

				Caozuo caozuo = new Caozuo();
				List<userAllInform> lists = caozuo.workshow(sql);
				
                 ObjectMapper mapper = new ObjectMapper();  //将lists集合转换成json格式传递到前端界面
                 mapper.writeValue(response.getWriter(), lists);

关键代码就是最后两句将查询到的lists集合转换成json格式输出到前端

                                       共同努力
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐