予約などの日付を扱うフォームではご要望が多い detapicker ですが、定休日や臨時休業日(年末・年始やお盆など)も反映させたいとのご要望も多く、さらに、その日付設定も自分のところで行いたいとのことでして。。。
日付設定は、管理画面を設けて、データベースに保存させればよいわけですが、そのデータベースに保存された休日一覧を公開ページにある detapicker に反映させる方法を以下に載せます。
ファイル名はなんでもよいのですが、ここでは holidays.php として、直接アクセスすると休日のリストを javascript の配列として出力させるようにします。
var holiday = ["20151114", "20151128", "20151212", "20151226", "20151229", "20151230", "20151231"];
HTML上では、上記の php を読み込みます。
<script src="./holidays.php" type="text/javascript"></script>
あとは datepicker の指定で上記の配列を反映させます。
$(function(){ var holidayList = holiday; $.datepicker.setDefaults( $.datepicker.regional['ja'] ); $( '.datepicker' ).datepicker({ numberOfMonths: 2, minDate: '+4d', maxDate: '+1y', dateFormat: 'yy/mm/dd', beforeShowDay: function(day){ var result; var dtDay = $.format.date( day, "yyyyMMdd" ); if( $.inArray( dtDay, holidayList ) != -1 ){ result = [false]; } else { result = [true]; } return result; } }); }); </script>
「var holidayList = holiday;」は、店舗(事務所)毎に異なるケースを踏まえての記述です。
上記は町田市と相模原市に事務所をもつまちだ・さがみ総合法律事務所さんの予約フォームで利用しています。
[mokurenCB]