通过onclick完整日历发送参数

时间:2014-06-17 14:53:07

标签: javascript php fullcalendar

我正在使用完整的日历。它工作正常。但我有问题通过onclick事件发送参数。我有这个js:

<script>
$(document).ready(function() {

    $('#calendar').fullCalendar({
                    theme: true,
                    header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        editable: false,
                    minTime: 8,
                    maxTime: 21,
                    weekMode: 'liquid',

                    eventClick: function(start, end, allDay) { // Get the start, end, allday when one event slot is clicked

                            $('#time').val(start); // Set an hidden field with start value (String or Timestamp)
                            $('#hiddenEnd').val(end); // Set another hidden field with end value (String or Timestamp)
                            $('#hiddenAllDay').val(allDay); // Set another hidden field with allDay value (true or false)

                    },

        events: "<?php echo Yii::app()->request->baseUrl; ?>/index.php/aula/calend/<?php echo $id; ?>",

                    eventRender: function (event, element) {
                        element.attr('href', 'javascript:void(0);');
                        element.attr('onclick', 'openModal("' + event.title + '","' + event.description + '","' + event.start + '");');
                    },

        eventDrop: function(event, delta) {
            alert(event.title + ' foi movido ' + delta + ' dia(s)\n' +
                '(Esta acao nao altera o banco de dados!)');
        },

        loading: function(bool) {
            if (bool) $('#loading').show();
            else $('#loading').hide();
        }

    });



});

    function openModal(title, info, start) {
        $("#eventInfo").html(info);
        $("#start-time").val(start);
        //var dd = start;
        $("#add-event").dialog({ modal: true, title: title, width:550,
        buttons: {
            "Salvar": function() {
                $.ajax({
                    type:"POST",
                    url: "<?php echo Yii::app()->request->baseUrl; ?>/index.php/aula/marcacao",
                    data: $('#add-event-form').serialize(),
                    success: function(){
                        $('#calendar').fullCalendar('refetchEvents');
                    }
                });
                $(this).dialog("close");
            },

            Cancel: function() {
                $(this).dialog("close");
            }
        },});
    };

当我点击一个事件时,我需要将该事件的小时发送给php,因为我需要在查询中使用它,然后才能使用此表单打开对话框:

<form action="" id ="add-event-form" name="add-event-form">

       <?php query = "SELECT aula FROM cursos WHERE hour = ****Hour clicked on calendar**** ?>

       <label for="title">Event Name</label>
    <input type="text" name="title" id="title"/>
    <p>
    <label for="add-date">Date</label>
    <input type="text" name="event-date" id="event-date" tabindex="-1" />
    </p>
    <p>
    <label for="add-start-time">Start Time</label>
    <input type="text" name="start-time" id="start-time" value=""/>
    </p>
    <p>
    <label for="add-end-time">End Time</label>
    <input type="text" name="end-time" id="end-time" />
    </p>
</form>

我一直试图解决这个问题几天没有成功。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

使用eventClick:eventClick: function(start, end, allDay)而不是function(event)。 然后访问变量使用event.start,event.end,event.allDay。您需要做的就是将它们与您的查询相匹配。

这是因为eventClick不采用start,end或allDay参数,而是采用event,jsEvent或view参数。资料来源:Official Documentation

答案 1 :(得分:0)

只需在服务器端使用$ _POST ['start-time']来检索参数。

$start = htmlspecialchars($_POST['start-time']);
$query = "SELECT aula FROM cursos WHERE hour =". $start;