У меня есть средство выбора даты, которое, если row Count
равно 5 или больше 5, дата в средстве выбора даты будет выделена красным цветом, а если row Count
равно 3 или больше 3 , дата в DatePicker будет выделена зеленым цветом. У меня есть идея в 1 состоянии, но в 2 состоянии у меня нет идеи. Я исследую это, но ничего не вижу. Я новичок.
Вот код:
//html
<input id="datepicker" name="dates" readonly='true' class="datepicker">
//PHP
$db = getDB();
$stmt = $db->prepare("SELECT scheddate FROM appointment GROUP BY scheddate
HAVING ( COUNT(scheddate) >=5 ) ");
$count=$stmt->rowCount();
$stmt->execute();
if($count=5){
$data= $stmt->fetchAll(PDO::FETCH_COLUMN);
$db = null;
if($data>0)
{
$json_array=$data;
$jarray = $json_array;
$jsonencode= json_encode(array_values($jarray)); // to convert data from scheddate column into json array
echo $jsonencode; // display array of results
}
}
//script
<script type='text/javascript'>
$(document).ready(function() {
// var unavailableDates = ["18-8-2018", "19-8-2018", "20-8-2018"]; // sample dates in day month year format
var unavailableDates = <?php echo $jsonencode; ?>; // array from the condition above
console.log(unavailableDates);
function unavailable(date) {
// ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
// +1 because array starts at index 0
// without + 1 january will start on index 0 instead of index 1
dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
// to check if dmy exists in the variable array
// inArray default result will be -1 meaning true. to reverse != -1
if ($.inArray(dmy, unavailableDates) == -1)
{
return [true, ""];
// if true dates that exist in the array will be disabled
}
else {
return [true, "different-background", "Unavailable"];
}
}
$(document).ready(function() { // to load jquery after the whole page loads
$("#datepicker").datepicker({
dateFormat: 'd-m-yy',
// date format that would display on the textbox
//mindate = start of date from current
minDate: 0,
// to disable specific date unavailable function is called
beforeShowDay: unavailableDates // function unavailable
});
});
});
</script>
PS: different-background
имеет красный цвет, означает, что row count
равно или больше, чем пять, a
в указателе даты будет выделен красным.