【发布时间】:2019-12-24 03:03:27
【问题描述】:
我正在使用日期选择器,我想在单击 MySQL 数据库时查询它以使某些日期不可用。如何将此数组传递到我的 JavaScript 代码中,其中显示“AJAX CALL CODE NEEDS TO GO HERE”?
这是我的 Javascript 日期选择器代码
$(function() {
$('input[name="start_date"]').daterangepicker({
autoUpdateInput: false,
locale: {
cancelLabel: 'Clear'
},
isInvalidDate: function(date) {
var dateRanges = [
AJAX CALL CODE NEEDS TO GO HERE
];
return dateRanges.reduce(function(bool, range) {
return bool || (date >= range.start && date <= range.end);
}, false);
}
});
$('input[name="start_date"]').on('apply.daterangepicker', function(ev, picker) {
document.getElementById("start_date").value = picker.startDate.format('MM/DD/YYYY');
document.getElementById("end_date").value = picker.endDate.format('MM/DD/YYYY');
});
$('input[name="datefilter"]').on('cancel.daterangepicker', function(ev, picker) {
$(this).val('');
});
});
以下是需要插入到 PHP 文件中的代码中以进行 ajax 调用的代码:
<?php
include 'dbconfig.php';
$sql="SELECT start_date, end_date FROM date_ranges ";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)) {
echo "{ 'start': moment('" . $row['start_date'] . "'), 'end': moment('" . $row['end_date'] . "') },";
mysqli_close($conn);
}
?>
编辑:在 Emiel Zuurbier 的帮助下编写新代码
$(function() {
var dateRanges = null;
$.ajax({
url: 'getdaterangepicker.php',
method: 'GET',
dataType: 'json',
success: function(response) {
if (response) {
dateRanges = $.parseJSON(response);
}
}
});
$('input[name="start_date"]').daterangepicker({
autoUpdateInput: false,
locale: {
cancelLabel: 'Clear'
},
isInvalidDate: function(date) {
return dateRanges.reduce(function(bool, range) {
return bool || (date >= range.start && date <= range.end);
}, false);
}
});
$('input[name="start_date"]').on('apply.daterangepicker', function(ev, picker) {
document.getElementById("start_date").value = picker.startDate.format('MM/DD/YYYY');
document.getElementById("end_date").value = picker.endDate.format('MM/DD/YYYY');
});
$('input[name="datefilter"]').on('cancel.daterangepicker', function(ev, picker) {
$(this).val('');
});
});
返回错误“TypeError: null is not an object (evalating 'dateRanges.reduce')”
【问题讨论】:
-
所以您需要先获取
start和end日期,然后使用这些值设置dateRanges? -
我需要将 PHP 文档获取的数组插入到“AJAX CALL GOES HERE”部分中
标签: javascript php mysql json ajax