Pickadate.jsとJQuery Form Pluginを使用しています。日付ピッカーと時間ピッカーを別々に持っています。私がしたいのは、datepicker の値に応じて timepicker の時間を無効にすることです。そのため、JSON データを に取り込もうとしていますpicker.set("disable", [ ]);
。プレーンテキストをコンソールログに記録できますが、目的のないままです。
私は多くのことを試しましたが、その質問でこれらの解決策に出くわしました。しかし、私はそれらを起動できませんでした。(私は pickadate の関数とクラスを pickatime のものに適合させました。)
// Javascript
$(document).ready(function() {
$("input").click(function() {
$(".datepicker").pickadate({
format: 'yyyy-mm-dd',
formatSubmit: 'yyyy-mm-dd',
min: true,
max: false
});
var $input = $(".timepicker").pickatime({
format: 'HH:i',
formatSubmit: 'HH:i',
formatLabel: 'HH:i'
});
$('.datepicker').change(function() {
$('#form').ajaxSubmit({
target: '#check_result',
url: 'check.php',
success: function showResponse(responseText, $form) {
var picker = $input.pickatime('picker');
picker.set("disable", [
console.log(responseText)
]);
}
});
return false;
});
});
});
// PHP (check.php)
<?php
// Database connection done.
$date = mysqli_real_escape_string($con, $_POST['date']);
$match_query = mysqli_query($con, "SELECT * FROM booking WHERE DATE(time) = '$date'");
$disabled_times = array();
if ($result = $match_query) {
while ($row = mysqli_fetch_assoc($result)) {
$disabled_times[] = $row['time'];
}
mysqli_free_result($result);
}
echo implode($disabled_times);
?>