【问题标题】:How to show info from database in fullcalendar如何在全日历中显示数据库中的信息
【发布时间】:2014-04-30 19:21:29
【问题描述】:

希望有人可以帮助我。我试图将 Fullcalendar (jQuery) 集成到我的网站。它的版本是 1.6.4。

我已经有一个数据库,其中包含我想添加到日历中的内容。在我的数据库中,原始数据具有以下名称: - 显示日期(以 2014-03-23 格式给出的事件的给定日期。应该显示该日期) - 名称(活动名称) - id(数据库中的id)

我可以看到 Fullcalendar 使用以下代码(来自文件 json-events.php)在日历中显示一些内容:

<?php
$year = date('Y');
$month = date('m');
echo json_encode(array(
    array(
        'id' => 111,
        'title' => "Event1",
        'start' => "$year-$month-10",
        'url' => "http://yahoo.com/"
    ),
    array(
        'id' => 222,
        'title' => "Event2",
        'start' => "$year-$month-20",
        'end' => "$year-$month-22",
        'url' => "http://yahoo.com/"
    )
));
?>

我在下面用我自己的代码替换了上面的代码。我已连接到数据库,但 Fullcalendar 中没有显示任何内容

<?php
// Create connection
$con=mysqli_connect("localhost","*****","*****","*****");

// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
session_start();

$result = mysql_query("SELECT id, name, displaydate AS displaydate FROM caledar");
mysql_close();
$events = array();
while ($row=mysql_fetch_array($result)){            
$id =  $row['id'];
$title = $row['name'];
$start = $row['displaydate']; 

$events = array(
'id' =>  "$id",
'name' => "$title",
'displaydate' => "$start"
);

}
echo json_encode($events);
?>

有人可以建议或看看我做错了什么吗?

【问题讨论】:

    标签: jquery database fullcalendar


    【解决方案1】:

    我自己修复了代码,现在它可以正常工作了。如果其他人应该有同样的问题,这是我的代码:

    $query = "select * from calender";
    
    $res = mysql_query($query) or die(mysql_error());
    $events = array();
    while ($row = mysql_fetch_assoc($res)) {
        $eventsArray['id'] =  $row['id'];
        $eventsArray['title'] = $row['name'];
        $eventsArray['start'] = date($row['displaydate']);
    $eventsArray['url'] = 'eventlink.php?id=' . $row['id'];
    $eventsArray['type'] = $row['type'];
    $eventsArray['description'] = $row['description'];
        $events[] = $eventsArray;
    }
    echo json_encode($events);
    

    【讨论】:

      【解决方案2】:

      您创建的数组中的名称应与示例中的名称相同。将“displaydate”替换为“start”,将“name”替换为“title”

      $events[] = array(
          'id' =>  "$id",
          'title' => "$title",
          'start' => "$start"
      );
      

      【讨论】:

      • 我试过了:$id = $row['id']; $title = $row['name']; $start = $row['displaydate']; $events = array( 'id' =&gt; "$id", 'title' =&gt; "$title", 'start' =&gt; "$start" ); 但还是不行。还有其他建议吗?
      • 抱歉之前没有注意到。它应该是 $events[] = array(... 。否则只返回最后一个事件
      • 所以现在代码看起来像:` $events = array(); while ($row=mysql_fetch_array($result)){ $id = $row['id']; $title = $row['name']; $start = $row['displaydate']; $events[] = array( 'id' => "$id", 'title' => "$title", 'start' => "$start" );` 但还是一样。什么都没有出现。我数据库中的日期格式是 2014-03-23 Fullcalendar 明白吗?
      • 来自 fullCalendar 文档:“为事件或事件源指定事件对象时,您可以指定 IETF 格式的字符串(例如:“Wed, 18 Oct 2009 13:00:00 EST”),一个字符串ISO8601 格式(例如:“2009-11-05T13:15:30Z”)或 UNIX 时间戳。” .所以你要么必须以不同的格式保存它们,要么转换它们......
      • nikos.svnk 那是问题所在吗?我有一个 CMS,其中所有内容都使用 mysql 中的 DATE 格式保存,例如 2014-01-20 我不能使用它吗?我该怎么做才能使它与 fullCalendar 一起使用?请指教。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-07
      • 2022-10-13
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多