Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > สอบถาม Jquery Datepicker ปิดวันที่ตามที่ต้องการหน่อยครับ ผมติดตรงนี้แก้ยังไงครับ



 

สอบถาม Jquery Datepicker ปิดวันที่ตามที่ต้องการหน่อยครับ ผมติดตรงนี้แก้ยังไงครับ

 



Topic : 120298



โพสกระทู้ ( 288 )
บทความ ( 0 )



สถานะออฟไลน์




คือผมจะหาว่า ID ไหน มีวันหยุดบ้าง เริ่มจากการ select ID ที่ต้องการ แล้วไปค้นหาในฐานข้อมูล ว่ามีวันหยุดไหนบ้าง ผมทำมาเกือบจะเสร็จแล้วครับ แต่ติดตรงนี้ครับ
Code (JavaScript)
$("#ID").change(function() {
 $.ajax({
			 url: 'sync.php',
			 type: 'GET',
			 data: { 'action' :'<?php echo encode('getCalendarDays');?>','ID' : $("#ID").val() },
			 dataType: "json",
			 success: function( datajson ) {
  			 	 var unavailableDates = datajson;
				 function unavailable(date) {
					dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
					if ($.inArray(dmy, unavailableDates) == -1) {
						return [true, ""];
					} else {
						return [false, "", "Unavailable"];
					}
				}
					$("#strdate").datepicker({
						   dateFormat: 'yy-mm-dd',
						   numberOfMonths: 1,
						   constrainInput: true,
							beforeShowDay: unavailable
					}); 
 			} 
	 });
});

ไฟล์ sync.php
Code (PHP)
if($action=='getCalendarDays') { 
  	$ID= $mysqli->real_escape_string($_GET['ID']); 
	$sql = "...";
    $result = $mysqli->query($sql);
	$num = $result->num_rows;
 		$invalid_date = array();  
		while (($row = $result->fetch_assoc())) {
			$date_part = $row['id_date'];  
			list($year, $month, $day) = explode('-', $date_part);
			 $invalid_date[] =  (int)$day.'-'.(int)$month . '-' .(int)$year; 
		}
 
	echo json_encode($invalid_date);
	exit;
}

จากนั้น ครั้งแรกผมลองเรียกดูดุ ID
ID #1 ได้ข้อมูล ["7-12-2015","6-12-2015","5-12-2015","10-12-2015","30-12-2015","29-12-2015","31-12-2015","1-1-2016","2-1-2016"]
ซึ่งแสดงข้อมูลถูกต้องในปฏิทิน ตามภาพด้านล่างครับ

datepicker

จากนั้น ผมก็ทดสอบเรียกดู ID #2
ID #2 ซึ่งไม่มีข้อมูลในฐานข้อมูล จะได้ [] ค่าว่าง (ผมเปิดใน Firebug ได้ค่าอันนี้ออกมาตรงแท็บ Response)

จากนั้นผมก็ลองเลือกปฏิทินดู วันที่บนปฏิทินไม่เปลี่ยนแปลงครับ เป็นเหมือนกับ ID #1
ตรงนี้แก้ไขยังไงดีครับ ผมงมมาตั้งแต่เช้าแล้วยังไม่ได้เลย รบกวนหน่อยครับ



Tag : PHP, HTML/CSS, JavaScript, Ajax, jQuery, CakePHP









ประวัติการแก้ไข
2015-12-02 15:43:10
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-12-02 15:42:34 By : ilikeit View : 1393 Reply : 3
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Code (JavaScript)
var array = ["2013-03-14","2013-03-15","2013-03-16"]

$('input').datepicker({
    beforeShowDay: function(date){
        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
        return [ array.indexOf(string) == -1 ]
    }
});

แปลงให้ถูก็ได้แล้วครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-02 22:36:05 By : mr.win
 


 

No. 2



โพสกระทู้ ( 288 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับพี่ TC Admin พอดีผมเรียกข้อมูลหลายรอบ

Code (JavaScript)
$.ajax({
			 url: 'sync.php',
			 type: 'GET',
			 data: { 'action' :'getCalendarDays;?>','branch' : $("#ID").val() },
			 dataType: "json",
			 success: function( datajson ) {
  			 	 unavailableDates = datajson; 
// ผมปรับตรงนี้ครับ จากนั้นก็ย้าย function ออกไปไว้นอก ajax
  			} 
	 });
 	}
   });
   
function unavailable(date) {
					dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
					if ($.inArray(dmy, unavailableDates) == -1) {
						return [true, ""];
					} else {
						return [false, "", "Unavailable"];
					}
				}


$("#strdate").datepicker({
						   dateFormat: 'yy-mm-dd',
						   numberOfMonths: 1,
						   constrainInput: true,
							beforeShowDay: unavailable
					}); 


ตอนนี้สามารถ Ajax แล้วปฏิทินเปลี่ยนตามต้องการถูกต้องแล้วครับ

ขอบคุณครับที่ดึกขนาดนี้พี่ยังมาตอบ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-02 22:59:07 By : ilikeit
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-12-04 08:57:44 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถาม Jquery Datepicker ปิดวันที่ตามที่ต้องการหน่อยครับ ผมติดตรงนี้แก้ยังไงครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่