У меня есть запрос ajax, который передает большой одиночный массив, полный дат, из файла php ("get-date. php") после того, как был сделан выбор выпадающего списка.
Код, который у меня есть, теперь определяет доступные даты в календаре на основе дат в массиве, которые возвращаются из ответа ajax JSON. Однако, если я выберу другой выпадающий элемент, он не изменится на новый набор доступных дат.
Вот код:
<option value="">Select Station</option>
<select name="station" class="form-control" id="station">
<?php
echo '<option value="'."1".'">'."1".'</option>';
echo '<option value="'."2".'">'."2".'</option>';
echo '<option value="'."3".'">'."3".'</option>';
?>
</select>
<p>Date: <input data-validation="date" data-validation-format="dd-mm-yyyy" id="datepicker" value="Pick Station" readonly="readonly"></p>
function load_data(station) {
$.ajax({
url:"get-dates.php",
method:"POST",
//station is value of dropDown value selected
data:{stationSelect:station},
dataType:"JSON",
success:function(data) {
console.log("successful AJAX call");
console.log(data);
function available(date) {
dmy = date.getDate() + "/" + (date.getMonth()+1) + "/" + date.getFullYear();
if ($.inArray(dmy, data) != -1) {
return [true, "","Available"];
} else {
return [false,"","unAvailable"];
}
}
//calendar date selection
$(function() {
$("#datepicker").datepicker({
beforeShowDay: available,
changeMonth: true,
changeYear: true,
dateFormat: "dd/mm/yy",
});
});
}
});
}
$(document).ready(function(){
$('#station').change (function(){
var station = $(this).val();
if(station != '')
{
load_data(station);
}
});
});