รบกวนสอบถามวิธีการ Disable datepicker ไม่ให้เลือกตามช่วงเวลาที่มีการจองไปแล้ว เช่นมีการจองวันที่ 1-4/11/2012 และ 13-15/11/2012 ไปแล้ว ถ้ามีคนมาจองใหม่เวลาคลิก Datepicker ให้ Disable ช่วงเวลาที่มีการจองไปแล้ว จะต้องทำอย่างไรครับ
ผมยังไม่เคยเห็นตัว option นี้ของ Datepicker ครับ จะเห็นแต่การกำหนดเป็นช่วงหน้าและหลังของวันที่ปัจจุบัน
คุณอาจต้องเขียนฟังก์ชั่นเพิ่มขึ้นมาต่างหากเพื่อเช็คค่าอย่างที่คุณต้องการ
ถ้าค่าตรงกันค่อยล็อคหรือเคลี่ยร์ตััว ช่่อง input และทำ popup แจ้งให้ user รับทราบ
Date :
2012-11-15 14:47:06
By :
dreamlover
ขอบคุณครับ แต่ตามตัวอย่าง http://jsfiddle.net/WtauC/ นั้น จะเป็นการ พิมพ์วันที่เข้าไปใน script
แต่ถ้าเราจะดึงวันที่จาก mysql มาเป็นตัวอ้างอิง พอจะมีวิธีใหมครับ
Date :
2012-11-15 18:11:07
By :
sranuwat
หมายถึงตรงนี้เหรอครับ var unavailableDates = ["10-11-2012","11-11-2012","12-11-2012"];
ก็ทำการดึงจากฐานข้อมูล ออกมา แล้วจัดรูปแบบที่ถูกต้อง
เช่น
<?php $date = '"10-11-2012","11-11-2012","12-11-2012"'; ?>
แล้วค่อยมา echo ในสคริปของ jQuery อีกทีสิครับ
var unavailableDates = [<?php echo $date ?>];
Date :
2012-11-15 21:40:04
By :
ไวยวิทย์
พอจะมีตัวอย่างการจัดรูปแบบตอนดึงข้อมูลใหมครับ
Date :
2012-11-15 21:56:44
By :
sranuwat
ในฐานข้อมูลจัดเก็บแบบไหนครับ
Date :
2012-11-15 22:29:09
By :
ไวยวิทย์
ผมจัดไว้แบบนี้ครับ
Date :
2012-11-15 22:52:52
By :
sranuwat
สลับที่วันที่ใน jQuery ครับจาก วัน-เดือน-ปี เป็น ปี-เดือน-วัน
ตามด้านล่าง
Code (PHP)
<script type="text/javascript">
var unavailableDates = ["2012-11-10","2012-11-11","2012-11-12"];
function unavailable(date) {
dmy = date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate();
if ($.inArray(dmy, unavailableDates) < 0) {
return [true,"","Book Now"];
} else {
return [false,"","Booked Out"];
}
}
$(function(){
$('#date').datepicker({ beforeShowDay: unavailable });
});
</script>
http://jsfiddle.net/WtauC/1/
สามารถที่จะดึงข้อมูลจาก ฟิว startdate และ enddate มาจัดเีรียงให้อยุ่ในรูปแบบ "2012-11-10","2012-11-11","2012-11-12" ได้ล่ะครับ
Date :
2012-11-16 09:10:14
By :
ไวยวิทย์
รบกวนเขียนตัวอย่าง script SQL ดึงข้อมูล จาก ฟิว startdate และ enddate มาจัดเีรียงให้อยุ่ในรูปแบบ "2012-11-10","2012-11-11","2012-11-12" ได้ใหมครับ ขอบคุณครับ
Date :
2012-11-16 11:09:57
By :
sranuwat
ลองดูครับ
Code (PHP)
SELECT CAST(GROUP_CONCAT(REPEAT('"',1),startdate,REPEAT('"',1) SEPARATOR ', ') AS CHAR) AS startdate FROM `tbl_x` WHERE startdate BETWEEN '2012-11-01' AND '2012-11-03'
ส่วนอีกวิธีก็ดึงข้อมูล แล้วนำมาต่อ string ด้วย php ครับค้นหาในบอร์ดดู มีเยอะครับ
Date :
2012-11-16 11:55:11
By :
ไวยวิทย์
Load balance : Server 00