关于php完整日历

时间:2016-02-08 06:31:06

标签: javascript php jquery fullcalendar

当我点击日历中的某个项目时,它将显示其特定任务。一秒钟后,日历将消失。但我想展示任务而不会消失。当我添加一个函数来根据项目调用日历时,就会出现此问题。

这是进入jquery的代码

{
    guyid = "";

    $('.guyid').click(function (){
        this.guyid = $(this).attr('id');
    //  alert('test:'+this.guyid);
            CalenderCall(this.guyid);

    });

    function CalenderCall(guyid){

//alert(guyid);
        $('#calendar').fullCalendar({
                header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'month,basicDay'
                },
                editable: true,
                eventLimit: true, // allow "more" link when too many events

                events: [
                    {
                        title: guyid,
                        start: '2016-02-04'
                    },
                    {
                        title: 'Event1',
                        start: '2016-02-04'
                    },

                    {
                        title: 'Event1',
                        start: '2016-02-17'
                    },
                    {
                        title: 'Long Event',
                        start: '2016-02-06',
                        end: '2016-02-10'
                    }

                    // etc...
                    ],
                    color: 'yellow',   // an option!
                    textColor: 'black' // an option!
        });
    }

});

这是身体部位

<!-- <div style="width: auto; height: 200px; border: 2px solid black;"></div> -->
<a href="tasks.php"><b>Tasks</b></a><br>
<div style="position: absolute;">
<?php
    $phplink = mysql_connect('localhost:3306', 'root', '');
    if (!$phplink) {
        die("Could not connect:" .mysql_error());
    }
    $db = mysql_select_db('jhoro_pm', $phplink) or die("Could not connect to db:" .mysql_error());
    $result_guy = mysql_query("SELECT id, name, can_login FROM person WHERE can_login=1");
    while ($row_guy=mysql_fetch_array($result_guy)) {
        //echo '<input type="hidden" class="guyid" value="' .$row_guy[0]. '" />';
        echo '<a href="index.php" class="guyid" id="' .$row_guy[0]. '">' .$row_guy[1]. '</a><br>';
    }
?>

这是没有日历的项目。单击其中任何一个时,任务将显示日历。但是一秒钟后日历消失了

enter image description here

2 个答案:

答案 0 :(得分:0)

好的,那你必须做类似下面的事情

首先用下面的代码更改你的代码。

<!-- <div style="width: auto; height: 200px; border: 2px solid black;"></div> -->
<a href="tasks.php"><b>Tasks</b></a><br>
<div style="position: absolute;">
<?php
    $phplink = mysql_connect('localhost:3306', 'root', '');
    if (!$phplink) {
        die("Could not connect:" .mysql_error());
    }
    $db = mysql_select_db('jhoro_pm', $phplink) or die("Could not connect to db:" .mysql_error());
    $result_guy = mysql_query("SELECT id, name, can_login FROM person WHERE can_login=1");
    while ($row_guy=mysql_fetch_array($result_guy)) {
        echo '<a href="javascript:void(0);" class="guyid" id="' .$row_guy[0]. '">' .$row_guy[1]. '</a><br>';

    }

        echo '<input type="hidden" id="selectedPerson" class="guyid" value="' .$row_guy[0]. '" />';
?>

1)从你的锚标签中删除href =“index.php”。 (href会调用每次点击,这就是你的日历消失的原因。 2)为选定的人设置隐藏字段。 (在循环的同时)。

现在,对jQuery代码进行一些精细修改。

{
    guyid = "";

    $('.guyid').click(function (){
        this.guyid = $(this).attr('id');
        $('#selectedPerson').val(this.guyid);
        $('#calendar').fullCalendar('rerenderEvents');
    });

        $('#calendar').fullCalendar({
                header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'month,basicDay'
                },
                editable: true,
                eventLimit: true, // allow "more" link when too many events

                events: [
                    {

                        title: 1,
                        start: '2016-02-04'
                    },
                    {
                        title: 2,
                        start: '2016-02-04'
                    },

                    {
                        title: 3,
                        start: '2016-02-17'
                    },
                    {
                        title: 4,
                        start: '2016-02-06',
                        end: '2016-02-10'
                    }

                    ],
                    eventRender: function(event, element) {
                       return (($('#selectedPerson').val()) == event.title);
                   },
                    color: 'yellow',   // an option!
                    textColor: 'black' // an option!
        });
});

这肯定会奏效。 如果你仍然卡在任何地方,请添加评论。

答案 1 :(得分:0)

保持现有代码(您在问题中提到的)原样。

只需添加如下的简单ajax网址即可加载明智的任务。

events: "urltofetchpersonwisetasks/?guyid="+guyid,

服务器以guyid作为请求参数获取此请求,并进行数据库调用以获取人员的任务并发送json响应。像json_encode(person_task_array)。这将自动加载所选人员的任务。