首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用其他数据库时,Calendar DayPilot“无法读取未定义的属性'getTime‘”

使用其他数据库时,Calendar DayPilot“无法读取未定义的属性'getTime‘”
EN

Stack Overflow用户
提问于 2015-05-11 18:12:29
回答 1查看 1.2K关注 0票数 1

我还是个JavaScript/Json的新手(我从来没有用过Json),在尝试使用DayPilot日历时遇到了一个问题。(我也是法国人,所以请原谅我的错误)。

http://code.daypilot.org/17910/html5-event-calendar-open-source

当我下载源代码并使用它时,它工作得很好,但当我试图使它适应我的数据库时,我无法使它工作。

源代码:

代码语言:javascript
复制
<!DOCTYPE html>
    <html>
    <head>
        <title>HTML5 Event Calendar</title>
        <!-- demo stylesheet -->
            <link type="text/css" rel="stylesheet" href="media/layout.css" />    

            <link type="text/css" rel="stylesheet" href="themes/calendar_g.css" />    
            <link type="text/css" rel="stylesheet" href="themes/calendar_green.css" />    
            <link type="text/css" rel="stylesheet" href="themes/calendar_traditional.css" />    
            <link type="text/css" rel="stylesheet" href="themes/calendar_transparent.css" />    
            <link type="text/css" rel="stylesheet" href="themes/calendar_white.css" />    

        <!-- helper libraries -->
        <script src="js/jquery-1.9.1.min.js" type="text/javascript"></script>

        <!-- daypilot libraries -->
            <script src="js/daypilot/daypilot-all.min.js" type="text/javascript"></script>

    </head>
    <body>
            <div id="header">
                <div class="bg-help">
                    <div class="inBox">
                        <h1 id="logo"><a href='http://code.daypilot.org/17910/html5-event-calendar-open-source'>HTML5 Event Calendar</a></h1>
                        <p id="claim"><a href="http://javascript.daypilot.org/">DayPilot for JavaScript</a> - AJAX Calendar/Scheduling Widgets for JavaScript/HTML5/jQuery</p>
                        <hr class="hidden" />
                    </div>
                </div>
            </div>
            <div class="shadow"></div>
            <div class="hideSkipLink">
            </div>
            <div class="main">

                <div style="float:left; width: 160px;">
                    <div id="nav"></div>
                </div>
                <div style="margin-left: 160px;">
                    <div id="dp"></div>
                </div>

                <script type="text/javascript">

                    var nav = new DayPilot.Navigator("nav");
                    nav.showMonths = 3;
                    nav.skipMonths = 3;
                    nav.selectMode = "week";
                    nav.onTimeRangeSelected = function(args) {
                        dp.startDate = args.day;
                        dp.update();
                        loadEvents();
                    };
                    nav.init();

                    var dp = new DayPilot.Calendar("dp");
                    dp.viewType = "Week";

                    dp.onEventMoved = function (args) {
                        $.post("backend_move.php", 
                                {
                                    id: args.e.id(),
                                    newStart: args.newStart.toString(),
                                    newEnd: args.newEnd.toString()
                                }, 
                                function() {
                                    console.log("Moved.");
                                });
                    };

                    dp.onEventResized = function (args) {
                        $.post("backend_resize.php", 
                                {
                                    id: args.e.id(),
                                    newStart: args.newStart.toString(),
                                    newEnd: args.newEnd.toString()
                                }, 
                                function() {
                                    console.log("Resized.");
                                });
                    };

                    // event creating
                    dp.onTimeRangeSelected = function (args) {
                        var name = prompt("New event name:", "Event");
                        dp.clearSelection();
                        if (!name) return;
                        var e = new DayPilot.Event({
                            start: args.start,
                            end: args.end,
                            id: DayPilot.guid(),
                            resource: args.resource,
                            text: name
                        });
                        dp.events.add(e);

                        $.post("backend_create.php", 
                                {
                                    start: args.start.toString(),
                                    end: args.end.toString(),
                                    name: name
                                }, 
                                function() {
                                    console.log("Created.");
                                });

                    };

                    dp.onEventClick = function(args) {
                        alert("clicked: " + args.e.id());
                    };

                    dp.init();

                    loadEvents();

                    function loadEvents() {
                        var start = dp.visibleStart();
                        var end = dp.visibleEnd();

                        $.post("backend_events.php", 
                        {
                            start: start.toString(),
                            end: end.toString()
                        }, 
                        function(data) {
                            console.log(data);
                            dp.events.list = data;
                            dp.update();
                        });
                    }

                </script>

                <script type="text/javascript">
                $(document).ready(function() {
                    $("#theme").change(function(e) {
                        dp.theme = this.value;
                        dp.update();
                    });
                });  
                </script>

            </div>
            <div class="clear">
            </div>

    </body>
    </html>

和backend_events.php:

代码语言:javascript
复制
 <?php
    require_once '_db.php'; 

    $start = '2015-02-22 00:00:00';
    $end = '2015-09-22 00:00:00';

    $stmt = $db->prepare('SELECT * FROM events WHERE NOT ((end <= :start) OR (start >= :end))');

    $stmt->bindParam(':start', $start);
    $stmt->bindParam(':end', $end);

    $stmt->execute();
    $result = $stmt->fetchAll();

    class Event {}
    $events = array();

    foreach($result as $row) {
      $e = new Event();
      $e->id = '1';
      $e->text = 'coucou';
      $e->start = '2015-05-13T10:00:00';
      $e->end = '2015-05-13T12:00:00';
      $events[] = $e;
    }


    header('Content-Type: application/json');
    echo json_encode($events);

    ?>

它将所有事件放在同一日期(它这样做是为了测试),但它是有效的!

当我尝试使用我的数据库修改backend_events.php时,事件不会出现在日历上,并且在控制台中收到错误消息"Cannot read property 'getTime‘of undefined“。

正如您所见,我甚至没有使用从我的数据库中获得的内容!

代码语言:javascript
复制
<?php

    // Insertion de tous les prérequis
    include '../Config/prerequis.php';
    $bdd = Donnee::getInstance()->connexion;

$start = '2015-02-22 00:00:00';
$end = '2015-09-22 00:00:00';

$stmt = $bdd->prepare('SELECT * FROM CRENEAU WHERE NOT ((Date_fin <= :start) OR (Date_debut >= :end)) AND ID_CONTRAT=16');

$stmt->bindParam(':start', $start);
$stmt->bindParam(':end', $end);

$stmt->execute();
$result = $stmt->fetchAll();


class Event {}
$events = array();

// foreach($result as $row) {
  // $e = new Event();
  // $e->id = $row['ID'];
  // $e->text = 'coucou';
  // $e->start = implode('T',explode(' ', $row['Date_debut']));
  // echo implode('T',explode(' ', $row['Date_debut'])).'<br>';
  // $e->end = implode('T',explode(' ', $row['Date_fin']));
  // $events[] = $e;
// }

foreach($result as $row) {
  $e = new Event();
  $e->id = '1';
  $e->text = 'coucou';
  $e->start = '2015-05-13T10:00:00';
  $e->end = '2015-05-13T12:00:00';
  $events[] = $e;
}


header('Content-Type: application/json');
echo json_encode($events);

?>

我已经试了好几天了,我甚至问过那些更有资格的朋友,我可以找到解决方案。所以,如果你有想法,我将不胜感激!

谢谢,海军陆战队。

EN

回答 1

Stack Overflow用户

发布于 2015-05-13 17:03:56

我们已经找到了解决方案。所以这是一个编码问题,

我做了一个包含‘../配置/先决条件.php’;在文件prerequis.php中我做了其他包含,一个我试图包含的文件,其中使用UTF8编码,而不是没有Bom的UTF8。

我现在可以完美地工作了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30164971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档