【发布时间】:2020-08-15 02:02:43
【问题描述】:
我正在尝试在页面加载时显示当前日期出勤率,并在选择日期后选择该日期详细信息并显示它。
我得到的结果和我需要的:
现在我的结果是:
- 如果我搜索所需日期,我会同时获得默认日期数据和选定日期数据。
- 问题是,每当我点击搜索按钮时,页面显然会重新加载,然后默认值功能也会运行,所以我得到了这两个值。
我需要的解决方案是:
- 由于我需要当前日期数据,我无法更改 onload 函数。
- 当我单击搜索按钮时,它应该采用所需的日期值而不是加载日期值,以便我可以将其作为参数传递给 ajax。
让我们考虑一个输入日期字段,并将这个输入日期字段设置为默认的ajax调用参数,以根据传递的参数获取特定的数据。
日期搜索.jsp
<html><body>
<input type="text" class="form-control input-sm datepicker" id="DtPicker">
<button type="button" id="Search" onclick=SearchDate()>Search</button
</body></html>
现在我从输入日期字段设置默认日期值 Onload,并从同一日期字段中选择所需的日期参数并单击搜索按钮,它应该将该首选参数传递给 ajax 参数而不是默认参数。
日期搜索.js
(function () {
$.fn.dataTable.ext.errMode = 'none';
$( "#srchVehDtPicker" ).datepicker({
format: "yyyy-mm-dd",
autoclose: true
});
// Here i am setting default date value to var that is current date that is seeted on the input date field onload.
var utc = new Date().toJSON().slice(0,10);
document.getElementById("DtPicker").value =utc;
// calling ajax funtion with default parametr.
attendance(utc);
}());
// On button click search funtion is called where selected date is collected passed to ajax as parameter
function SearchDate(){
// taking the value from input date value on button click.
var searchdate = $("#DtPicker").val();
var utc = searchdate.toString();
// calling ajax value with a value as a parameter.
attendance(utc);
}
function attendance(utc){
var url = "projecturl?utc="+utc;
$.ajax({
type : "GET",
url : url,
cache : false,
contentType: "text/plain",
dataType: 'json',
success : function(data)
{
AttendanceDetailsObj = data[0].Result;
AttendanceList(AttendanceDetailsObj);
}
});
}
Attendance.java
这里我正在尝试根据传递的日期获取数据,并且我正在尝试获取大于等于传递日期的数据。
当默认日期被传递时,只有该日期数据不应该出现其他值。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
JSONArray finalResultAry = new JSONArray();
String utc = request.getParameter("utc");
//String utc = "2020-04-29";
JSONArray AttendanceDetailsRstAry = new JSONArray();
JSONObject AttendanceDetailsObj = new JSONObject();
ResultSet rs = null;
Statement smt = null;
try {
DBConnect connect = new DBConnect();
Connection connection = connect.connect();
smt = connection.createStatement();
String attendanceselectallQry = "select * from Attendance where Plan_Date>='"+utc+"'";
rs = smt.executeQuery(attendanceselectallQry);
while (rs.next()) {
JSONObject AttendanceDetailsRstObj = new JSONObject();
AttendanceDetailsRstObj.put("Id",rs.getInt("Employee_ID"));
AttendanceDetailsRstObj.put("Name",rs.getString("Employee_Name"));
AttendanceDetailsRstObj.put("presenttype",rs.getString("Present_Type"));
AttendanceDetailsRstObj.put("plandate",rs.getString("Plan_Date"));
AttendanceDetailsRstObj.put("sanctionedon",rs.getString("Sanctioned_On"));
AttendanceDetailsRstObj.put("leaveot",rs.getString("Leave_OT"));
AttendanceDetailsRstAry.put(AttendanceDetailsRstObj);
}
AttendanceDetailsObj.put("Result", AttendanceDetailsRstAry);
finalResultAry.put(AttendanceDetailsObj);
smt.close();
}catch (Exception e) {
e.printStackTrace();
}
response.getWriter().write(finalResultAry.toString());
}
【问题讨论】:
-
因为你已经使用
ajax你的页面不应该重新加载,你也可以为你当前的代码做演示吗? -
在同一页面上我有一个数据表视图,所以它会重新加载
-
谁能解决这个问题:)
标签: javascript jquery ajax date jsp