- Он получает выбранную дату в качестве параметра (selectedDate).
- Он имитирует серверная логика для определения доступности на основе выбранной даты.
В предоставленном коде серверная логика представляет собой простое сравнение выбранной даты с той же датой в Календаре Google. - Если выбранная дата в данный момент не имеет событий в этот день в календаре Google, функция возвращает true, указывая на доступность.
- Если в выбранную дату в данный момент есть какие-либо события в этот день день вообще в календаре Google, функция возвращает false, указывая на недоступность.
Availability Checker
Select a date:
Check Availability
function checkAvailability() {
const selectedDate = document.getElementById('datePicker').value;
// Perform client-side validation if needed
// Display loading message
document.getElementById('availabilityMessage').innerText = 'Checking availability...';
// Simulate server response
simulateServerResponse(selectedDate)
.then(isAvailable => {
const message = isAvailable ? 'Yay, we are available!' : 'Sorry, we are unavailable';
document.getElementById('availabilityMessage').innerText = message;
})
.catch(error => {
console.error('Error checking availability:', error);
document.getElementById('availabilityMessage').innerText = 'Error checking availability';
});
// Prevent the form from submitting
return false;
}
function simulateServerResponse(selectedDate) {
return fetch('', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: 'action=check_availability&selected_date=' + encodeURIComponent(selectedDate)
})
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.text();
})
.then(data => {
return data === 'Available';
})
.catch(error => {
console.error('Error fetching availability:', error);
return false;
});
}
// Initialize flatpickr date picker
flatpickr('#datePicker', {
dateFormat: 'Y-m-d',
minDate: 'today', // Optionally set a minimum date
});
Подробнее здесь: https://stackoverflow.com/questions/783 ... r-availabi
Мобильная версия