【发布时间】:2020-04-27 10:36:46
【问题描述】:
由于我的开发人员不可用,我正在尝试在我的项目中使用我的一点 JQuery 知识来取得进展,但我面临着一个障碍。我正在尝试创建一个 cookie,它将用户选择的日期范围保存在 datepicker 中,并在用户刷新或返回页面时使报告在数据表中可用。
我现在所做的只是在选择日期时创建/刷新 cookie,并在用户返回时在 datepicker 上重新选择日期范围,但由于未发送 Ajax 请求,因此不会刷新这些日期的报告到数据表。
到目前为止,这是我的代码:
$('#demo').daterangepicker({
"timePicker24Hour": true,
"autoApply": true,
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
},
"alwaysShowCalendars": true,
"startDate": Cookies.get('startdate'),
"endDate": Cookies.get('enddate'),
"opens": "left",
}, function(start, end, label) {
$("#datereturn").text(start.format('MMMM D, YYYY') + ' to ' + end.format('MMMM D, YYYY'));
var todaydate = start.format('YYYY-MM-DD')+"to"+end.format('YYYY-MM-DD');
Cookies.set('startdate', start.format('MM/DD/YYYY'));
Cookies.set('enddate', end.format('MM/DD/YYYY'));
$.ajax({
url:"campaign-table.php",
method:"POST",
data:{todaydate:todaydate},
success:function(data){
$('#campaigntable').html(data);
}
});
});
我需要在页面加载时执行代码末尾的 Ajax 请求。我尝试了下面的代码,但它似乎不起作用。 Shorty,如果不存在,它会在页面加载时创建 cookie,否则它会将 Ajax 请求发送到数据表,其中包含来自 cookie 的日期以显示报告:
$(function(){
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var output =
((''+month).length<2 ? '0' : '') + month + '/' +
((''+day).length<2 ? '0' : '') + day + '/'
+ d.getFullYear() ;
if (Cookies.get('startdate') == null || Cookies.get('enddate') == null) {
Cookies.set('startdate', output);
Cookies.set('enddate', output);
}
if (Cookies.get('startdate') && Cookies.get('enddate')) {
var todaydate = Cookies.get('startdate')+"to"+Cookies.get('enddate');
$.ajax({
url:"campaign-table.php",
method:"POST",
data:{todaydate:todaydate},
success:function(data){
$('#campaigntable').html(data);
}
});
}
});
编辑:我认为我没有在适当的地方进行更改。我有这段代码,正是campaign-table.php 应该加载的地方。
$(document).ready(function(){
var todaydate = (new Date()).toISOString().split('T')[0]+"to"+(new Date()).toISOString().split('T')[0];
$.ajax({
url:"campaign-table.php",
method:"POST",
data:{todaydate:todaydate},
success:function(data){
$('#campaigntable').html(data);
}
});
});
$('li.dropdown.mega-dropdown').on('click', function (event) {
$(this).parent().toggleClass('open');
});
$('body').on('click', function (e) {
if (!$('li.dropdown.mega-dropdown').is(e.target)
&& $('li.dropdown.mega-dropdown').has(e.target).length === 0
&& $('.open').has(e.target).length === 0) {
$('li.dropdown.mega-dropdown').removeClass('open');
}
});
【问题讨论】:
-
你有 2 个 if 语句尝试将第二个语句更改为 else 语句。
-
不幸的是它没有用
-
PHP 脚本
campaign-table.phptodaydate期望范围值是2020-04-15to2020-04-24,这是正确的吗? -
没错。我已经编辑了我的问题,因为我可能试图以错误的代码将日期范围发送到表格。见文末代码。
标签: javascript jquery cookies