Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将jQuery fullcalendar集成到PHP网站中_Php_Jquery_Calendar_Fullcalendar - Fatal编程技术网

将jQuery fullcalendar集成到PHP网站中

将jQuery fullcalendar集成到PHP网站中,php,jquery,calendar,fullcalendar,Php,Jquery,Calendar,Fullcalendar,我想将jQuery fullcalendar集成到我的PHP网站中,但我不知道如何处理事件以及如何使用来自MySQL的JSON数据 任何建议都将不胜感激。请确保您的PHP可以输出f: 下面是PHP代码: <?php $year = date('Y'); $month = date('m'); echo json_encode(array( array( 'id' => 1, 'title' => "

我想将jQuery fullcalendar集成到我的PHP网站中,但我不知道如何处理事件以及如何使用来自MySQL的JSON数据


任何建议都将不胜感激。

请确保您的PHP可以输出f:

下面是PHP代码:

<?php

   $year = date('Y'); 
   $month = date('m');

   echo json_encode(array( 

      array( 
         'id' => 1, 
         'title' => "Event1", 
         'start' => "$year-$month-10", 
         'url' => "http://yahoo.com/" 
      ), 

      array( 
         'id' => 2, 
         'title' => "Event2", 
         'start' => "$year-$month-20", 
         'end' => "$year-$month-22", 
         'url' => "http://yahoo.com/" 
      ) 

   ));

?>

我不熟悉jquery。但我认为问题在于您没有考虑Ajax的异步特性

除非fullCalendar()执行一些非常奇怪的操作(触发Ajax请求并等待响应),否则您将无法以这种方式在函数中使用外部源,因为当服务器返回响应时,fullCalendar将已完成运行


在“周日历”网页上,似乎没有明确的示例说明您正在尝试做什么,但我确信您需要的是创建没有事件的日历,但定义了用于添加事件的回调;然后以某种方式发出外部呼叫

我想你的问题和我的一样。我在网上搜索,试图找到如何设置日期时间,以便fullCalendar javascript能够正确解释它。(这一页有一些很好的线索:)

我把这篇文章贴在了完整的日历问题页面上,希望创作者或其他人能对这个主题有所启发

============================问题说明====================

什么步骤会重现问题

  • 使用JSON获取事件
  • 使用以下JSON字符串:
  • 预期产量是多少?你看到了什么

    • 我希望活动将在日历中显示开始时间 10:00和结束时间11:01
    • 它以全天活动的形式出现
    您使用的是什么版本的产品?在什么操作系统上

    • FullCalendar v1.4.1
    • 视窗XP
    请在下面提供任何其他信息

    我正在使用aspx页面获取日历事件。我猜是这样 JavaScript
    DateTime
    对象的格式有问题 我在
    JSON
    中返回,这导致
    fullcalendar
    将事件解释为
    fullDayEvents
    。我在邮件中发送的格式
    JSON
    是:
    2009-11-17T11:01:00

    我也遇到了同样的问题,我刚刚找到了如何让它工作的方法。 以下是您应该在php文件中使用的代码:

    $query = "select * from events where accountNo = '$accountNo'";
    $res = mysql_query($query) or die(mysql_error());
    $events = array();
    while ($row = mysql_fetch_assoc($res)) {
        $start = "2010-01-08T08:30"";//Here you have to format data from DB like this.
        $end = "2010-01-08T08:30";//This format works fine
        $title = $row['firstName']." ".$row['lastName'];
        $eventsArray['id'] =  $row['id'];
        $eventsArray['title'] = $title;
        $eventsArray['start'] = $start;
        $eventsArray['end'] = $end;
        $eventsArray['allDay'] = "";
        $events[] = $eventsArray;
    }
    
    
    echo json_encode($events);
    
    我希望它有帮助:)。

    “2010-02-11 11:00:00”格式可以很好地为我指定时间(里面没有“T”),
    解决方案的关键是将事件的“allDay”属性设置为空字符串。

    嘿,我没有使用上面的代码,但是在json_events.php中,默认的是 php输出开头的“[”和结尾的“]”

    此示例有效:

    $sql= "SELECT id, title, start, DATE_FORMAT(start, '%Y-%m-%dT%H:%i' ) AS startDate
    FROM kalender
    ORDER BY startDate DESC";
    $res = mysql_db_query($db, $sql, $conn) or die(mysql_error());
    
    $events = array();
    //important ! $start = "2010-05-10T08:30";  iso8601 format !!
    while ($row = mysql_fetch_assoc($res)) {
       $eventArray['id'] = $row['id'];
       $eventArray['title'] =  $row['title'];
       $eventArray['start'] = $row['startDate'];
       $events[] = $eventArray;
    }
    echo json_encode($events);
    

    回显事件的输出应采用以下格式:

    $('#calendar').fullCalendar({
      events: [{
        title: 'Awesome Event Title', 
        start: new Date($start_year, $start_month, $start_day),     or   end: new Date(y, m, d),
        end: new Date($end_year, $end_month, $end_day)    or   end: new Date(y, m, d)
      }]
    });
    

    以这种方式实施,效果很好

    $result = mysql_query("SELECT * FROM eventoform",$conexion);
            $array = array();
            $i = 0;
            while ($row = mysql_fetch_array($result)) {
                $array[$i]=array("id"=>$row["id_evento"],"title"=>$row["NombreEvento"],"start"=>$row["FechaInicio"]." ".$row["HoraInicio"],"allDay"=>false,"description"=>$row["description"],"editable"=>true);
                $i++;
            }
    
     echo json_encode($array);
    
    在PHP-JSON中:

    $eventsArray['allDay'] = "false"; //doesn't work
    
    $eventsArray['allDay'] = false; //did the trick to have a NON FULL DAY correctly rendered!!
    

    以防有人使用rails和jbuilder生成json提要……您必须添加全天属性

    json.array!(@resubmissions) do |object|
      json.id object.id
      json.title "WVL - #{object.to_s}"
      json.start object.resubmission_at.to_i
      json.allDay false
    end
    

    不过,感谢PHP解决方案

    你指的是日历吗?如果真的很紧急,你应该试试IRC频道……为什么我们会在意任务是否紧急?对我来说,这通常是一个不回答问题的理由。如果您需要快速完成某些事情,请为自己寻找一些付费支持。@elzapp是的,就是那个插件。@Duroth是的,您是对的。几天以来我一直在忍受它。我来这里是想得到更多的想法和建议。非常感谢你的建议。非常感谢你的评论。但我认为你有一些误解,或者我没有很清楚地描述它。我想添加jquery weekcalendar插件,这里有一个示例。那里一切都在进行中。但我想让它与mysql数据库一起工作。谢谢!!!!!!!根据服务器的不同,确保设置了
    date\u default\u timezone\u(“美国/您的时区”)在日期(XXX)之前打电话谢谢你的帖子。你有点指出了我的问题。实际上,我无法添加/编辑/删除事件,也无法通过json从mysql获取数据。我会尽力安排和解决的。谢谢,哦,谢谢,伙计,是我
    
    $result = mysql_query("SELECT * FROM eventoform",$conexion);
            $array = array();
            $i = 0;
            while ($row = mysql_fetch_array($result)) {
                $array[$i]=array("id"=>$row["id_evento"],"title"=>$row["NombreEvento"],"start"=>$row["FechaInicio"]." ".$row["HoraInicio"],"allDay"=>false,"description"=>$row["description"],"editable"=>true);
                $i++;
            }
    
     echo json_encode($array);
    
    $eventsArray['allDay'] = "false"; //doesn't work
    
    $eventsArray['allDay'] = false; //did the trick to have a NON FULL DAY correctly rendered!!
    
    json.array!(@resubmissions) do |object|
      json.id object.id
      json.title "WVL - #{object.to_s}"
      json.start object.resubmission_at.to_i
      json.allDay false
    end