我需要在jquery-ui中禁用一些日期
以下代码可以正常工作:
var unavailableDates =["19-6-2020","21-6-2020","29-6-2020"];
var dateToday = new Date();
var dateToday=
$(function() {
$( "#date_picker" ).datepicker({
dateFormat: 'dd-mm-yy',
minDate: dateToday,
onSelect: function(dateText) {
alert("Selected date: " + dateText);
},
beforeShowDay:unavailable
});
});
function unavailable(date) {
//alert ("Function"+unavailableDates);
dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
if ($.inArray(dmy, unavailableDates) == -1) {
return [true, ""];
} else {
return [false, "", "Unavailable"];
}
}
但是我需要从mysql数据库中检索不可用的日期。这是ajax返回:
["19-6-2020","21-6-2020","29-6-2020"]
该字符串由php创建:
$temp="[";
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$ date=date("j-n-Y", strtotime($row["date_unavailable"]));
$ temp=$temp.'"'.$date.'",';
}//end while
$temp = rtrim($temp, ",");
$temp=$temp."]";
echo $temp;
exit();
当我尝试使用此返回的字符串时,不会显示所有不可用的日期。该字符串实际上是由不可用的功能检测到的,但是会忽略它(不显示错误)返回的字符串显然存在问题,但我看不到它是什么。
任何指向问题的指针,我们都会感激
考虑以下JavaScript:
$(function() {
function getUnDates() {
var results;
$.getJSON("getDates.php", function(data) {
results = data;
});
return results;
}
function unavailable(date) {
var dmy = $.datepicker.formatDate("dd-mm-yy", date);
var result = [false, "", "Unavailable"];
if ($.inArray(dmy, unavailableDates) == -1) {
result = [true, ""];
}
return result;
}
var unavailableDates = getUnDates();
var dateToday = new Date();
$("#date_picker").datepicker({
dateFormat: 'dd-mm-yy',
minDate: dateToday,
onSelect: function(dateText) {
alert("Selected date: " + dateText);
},
beforeShowDay: unavailable
});
});
然后在独立的PHP脚本中使用它:
$results = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$date = date("j-n-Y", strtotime($row["date_unavailable"]));
array_push($result, $date);
}
header('Content-Type: application/json');
echo json_encode($result);
exit();