ดึงข้อมูลมาโชว์ในปฏิทินกิจกรรมไม่ได้ รบกวนช่วยดูหน่อยนะคะ ^^

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ดึงข้อมูลมาโชว์ในปฏิทินกิจกรรมไม่ได้ รบกวนช่วยดูหน่อยนะคะ ^^

ดึงข้อมูลมาโชว์ในปฏิทินกิจกรรมไม่ได้ รบกวนช่วยดูหน่อยนะคะ ^^
ดึงข้อมูลจากฐานข้อมูล

<?php 
header("Content-type:application/json; charset=UTF-8");          
header("Cache-Control: no-store, no-cache, must-revalidate");         
header("Cache-Control: post-check=0, pre-check=0", false);    
include('Connection.php');  // เรียกใช้งานไฟล์เชื่อมต่อกับฐานข้อมูล
$mysqli = connect(); // เชื่อมต่อกับฐานข้อมูล    
if($_GET['gData']){  
    $sql="SELECT * FROM tbl_book WHERE (book_status='Y' OR book_status='N') AND date(fdate)>='".date("Y-m-d",$_GET['start'])."' ORDER by book_id ";  
  
    $result = $mysqli->query($sql);
    while($rs=$result->fetch_object()){
        $json_data[]=array(  
            "id"=>$rs->book_id,
            "title"=>$rs->room_name,
            "start"=>$rs->date,
            "url"=>$rs->popup_book     
            // กำหนด event object property อื่นๆ ที่ต้องการ
        );    
    }  
}
$json= json_encode($json_data);  
if(isset($_GET['callback']) && $_GET['callback']!=""){  
echo $_GET['callback']."(".$json.");";      
}else{  
echo $json;  
}  
?>  


Chinjung 26-10-2014 19:54:24

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
หน้าโชว์ปฏิทินกิจกรรม

<!DOCTYPE html>
<html lang="th">
<head>
    <meta charset="UTF-8">
    <title>Fullcalendar</title>
    <link rel="stylesheet" href="js/fullcalendar-2.1.1/fullcalendar.min.css">
    <style type="text/css">
    html,body{
        maring:0;padding:0;
        font-family:tahoma, "Microsoft Sans Serif", sans-serif, Verdana;   
        font-size:12px;
    }
	#calendar{
		max-width: 700px;
		margin: 0 auto;
        font-size:13px;
	}        
    </style>
</head>
<body>

<br><br>
<div style="margin:auto;width:800px;">
 <div id='calendar'></div>
 </div>
  
    
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>    
<script type="text/javascript" src="js/fullcalendar-2.1.1/lib/moment.min.js"></script>
<script type="text/javascript" src="js/fullcalendar-2.1.1/fullcalendar.min.js"></script>
<script type="text/javascript" src="js/fullcalendar-2.1.1/lang/th.js"></script>
<script type="text/javascript" src="script.js"></script>            
</body>
</html>


chinjung 26-10-2014 20:00
 ความคิดเห็นที่ 2
หน้า js

$(function(){

    $('#calendar').fullCalendar({
        header: {
            left: 'prev,next today',  
            center: 'title',
            right: 'month,agendaWeek,agendaDay',
        },  
        events: {
            url: 'data_events.php?gData=1',
            error: function() {

            }
        },    
        eventLimit:true,
        lang: 'th'
    });
     
});


chinjung 26-10-2014 20:01
 ความคิดเห็นที่ 3

ดูน่าจะผิด หรือมีข้อผิดพลาดในไฟล์ data_events.php  ตรวจสอบค่าข้อมูล

ผ่านการใช้งาน javascript console ถ้าใช้ผ่าน chrome ก็กด ctrl+Shift+J

รวมถึงตรวจดูว่า ไฟล์ connect.php มีหรือไม่ มีกรกำหนดค่าติด่อกับฐานข้อมูลถูกต้องไหม

ดูการเชื่อมต่อกับฐานข้อมูลเพิ่มเติมได้ที่
 

มาใช้ mysqli แทน mysql แบบเดิม ใน php กันอย่างง่าย 


 



ninenik 26-10-2014
 ความคิดเห็นที่ 4
หน้า connection ค่ะ  ไม่ทราบว่า พอจะใช้กับปฏิทินนี้ได้มั้ย และถ้าใช้ได้ หน้า data_events ต้องปรับเปลี่ยนเป็นแบบใดคะ รบกวนช่วยดูหน่อยนะคะ :)  ขอบคุณค่ะ

<?php		// เชื่อมต่อกับฐานข้อมูล
$dbserver = 'localhost';
$dbuser = "root" ; 
$dbpass= "1234";
$dbname= 'bookroom';


mysql_connect($dbserver, $dbuser, $dbpass) or die("เชื่อมต่อฐานข้อมูลไม่ได้ ");
mysql_select_db($dbname) or die("เลือกฐานข้อมูลไม่ได้"); // เลือกฐานข้อมูล
mysql_query("SET NAMES UTF8");
?>


chinjung 27-10-2014 18:02
 ความคิดเห็นที่ 5
วิธีแก้อยู่ในความเห็นที่ 3 ตามลิงค์ที่แนะนำไป เพราะดูแล้วใช้ งาน คนละคำสั่ง
connect.php ที่ส่งให้ดูใช้ mysql แบบเก่า ส่วนที่แนะนำใช้ mysqli  ลองเปลี่ยนไฟล์ connect.php เป็นแบบนี้ดู

<?php
// connect.php
$db_config=array(
    "host"=>"localhost",  // กำหนด host
    "user"=>"root", // กำหนดชื่อ user
    "pass"=>"1234",   // กำหนดรหัสผ่าน
    "dbname"=>"bookroom",  // กำหนดชื่อฐานข้อมูล
    "charset"=>"utf8"  // กำหนด charset
);
$mysqli = @new mysqli($db_config["host"], $db_config["user"], $db_config["pass"], $db_config["dbname"]);
if(mysqli_connect_error()) {
    die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
    exit;
}
if(!$mysqli->set_charset($db_config["charset"])) { // เปลี่ยน charset เป้น utf8 พร้อมตรวจสอบการเปลี่ยน
//    printf("Error loading character set utf8: %sn", $mysqli->error);  // ถ้าเปลี่ยนไม่ได้
}else{
//    printf("Current character set: %sn", $mysqli->character_set_name()); // ถ้าเปลี่ยนได้
}
//echo $mysqli->character_set_name();  // แสดง charset เอา comment ออก
//echo 'Success... ' . $mysqli->host_info . "n";
//$mysqli->close();
?>


ninenik 27-10-2014
 ความคิดเห็นที่ 6
อ๋ออ ค่ะๆ ลองเปลี่ยนดูแล้ว แต่หน้าอื่นใช้คำสั่ง mysql แบบเก่า  ทำให้ต้องแก้หลายหน้า
ถ้าเป็น 
mysql แบบเก่านี่ ทำปฏิทินแบบนี้ไม่ได้ใช่มั้ยคะ


chinjung 27-10-2014 21:20
 ความคิดเห็นที่ 7
ไม่เกี่ยวหรอก ถ้าแบบนั้นก็ใช้ คำสั่งแบบเก่าแทนได้ เปลี่ยนเฉพาะที่ไฟล์
data_events.php


<?php 
header("Content-type:application/json; charset=UTF-8");          
header("Cache-Control: no-store, no-cache, must-revalidate");         
header("Cache-Control: post-check=0, pre-check=0", false);    
include('Connection.php');  // เรียกใช้งานไฟล์เชื่อมต่อกับฐานข้อมูล
if($_GET['gData']){  
    $sql="SELECT * FROM tbl_book WHERE (book_status='Y' OR book_status='N') AND date(fdate)>='".date("Y-m-d",$_GET['start'])."' ORDER by book_id ";  
  
    $qr=mysql_query($sql);
    while($rs=mysql_fetch_object($qr)){
        $json_data[]=array(  
            "id"=>$rs->book_id,
            "title"=>$rs->room_name,
            "start"=>$rs->date,
            "url"=>$rs->popup_book     
            // กำหนด event object property อื่นๆ ที่ต้องการ
        );    
    }  
}
$json= json_encode($json_data);  
if(isset($_GET['callback']) && $_GET['callback']!=""){  
echo $_GET['callback']."(".$json.");";      
}else{  
echo $json;  
}  
?>  


ninenik 27-10-2014
 ความคิดเห็นที่ 8
ขอบคุณ Ninenik มากเลยค่ะ ตอนนี้ดึงข้อมูลมาโชว์หน้าปฏิทินได้แล้ว

แต่ติดปัญหาตรงที่อยากให้โชว์เวลาเริ่มและสิ้นสุดด้วย ซึ่งตอนนี้ยังขึ้นแบบตลอดวันอยู่
โดยใช้ชื่อ fromtime กับ totime รูปแบบ time 00:00:00
ไม่ทราบว่าต้องแก้อย่างไรหรอคะ รบกวนอีกรอบนะคะ 

                     


chinjung 28-10-2014 00:01
 ความคิดเห็นที่ 9
เราต้องกำหนด start และ end และก็ allDay หรือไม่ใน ไฟล์ event_data.php

        $json_data[]=array(    
            "id"=>$rs->event_id,  
            "title"=>$rs->event_title,  
            "start"=>$rs->event_start,  
            "end"=>$rs->event_end,  
            "url"=>$rs->event_url,  
            "allDay"=>false        
            // กำหนด event object property อื่นๆ ที่ต้องการ  
        );     


ปกติจำเป็นต้องมี title กับ start  ถ้ามีสองรายการนี้แล้ว ให้เพิ่ม end กับ allDay 

ดูเพิ่มเติมได้ที่

การใช้งาน fullcalendar v.2.1.1 กับฐานข้อมูล สร้างปฏิทินกิจกรรม  


ninenik 28-10-2014
 ความคิดเห็นที่ 10
ได้ดูเพิ่มเติมที่คุณ Ninenik แนะนำแล้วค่ะ แต่ตัวอย่างเก็บรูปแบบ start กับ end เป็น datetime 
ถ้าเก็บในรูปแบบวันที่เป็น date และเวลาป็น time แยกจากกัน 
จะแก้ตรง start กับ end อย่างไรคะ จึงจะขึ้นช่วงเวลาให้ด้วย


chinjung 28-10-2014 16:03
1 2 Next






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ