Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
编辑完整日历javascript_Javascript_Ajax_Fullcalendar_Fullcalendar Scheduler - Fatal编程技术网

编辑完整日历javascript

编辑完整日历javascript,javascript,ajax,fullcalendar,fullcalendar-scheduler,Javascript,Ajax,Fullcalendar,Fullcalendar Scheduler,我正在编辑fullcalendar以适应我的需要。 首先是代码: <!----HTML----> <link href='assets/css/fullcalendar.css' rel='stylesheet' /> <link href='assets/css/fullcalendar.print.css' rel='stylesheet' media='print' /> <script src='assets/js/moment.min.js'&

我正在编辑fullcalendar以适应我的需要。 首先是代码:

<!----HTML---->
<link href='assets/css/fullcalendar.css' rel='stylesheet' />
<link href='assets/css/fullcalendar.print.css' rel='stylesheet' media='print' />
<script src='assets/js/moment.min.js'></script>
<script src='assets/js/jquery-ui.min.js'></script>
<script src='assets/js/fullcalendar_not_min.js'></script>

<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Scegli Zona di Servizio</h4>
      </div>
      <div class="modal-body" id="myModalBody">
        <div class="form-group">
        <label for="sel1">Select list (select one):</label>
        <select class="form-control" id="mySelect">         
        <?php 
            foreach($zone_servizio_array as $zona){
                echo '<option value="'.$zona->getId().'">'.$zona->getNome().'</option>';
            }
        ?>
        </select>
        </div>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary" onclick="save();" data-dismiss="modal">Save changes</button>
      </div>
    </div>
  </div>
</div>

<body>
    <div id='wrap'>

        <div id='external-events'>
            <h4>Agenti</h4>
            <?php 
                foreach ($agenti_array as $agente){
                    echo '<div class=\'fc-event\'>'.$agente->getNome().' '.$agente->getCognome().'</div>';
                }
            ?>
            <p>
                <img src="assets/img/trashcan.png" id="trash" alt="">
            </p>
        </div>

        <div id='calendar_buttons' align="left">
            <div class="btn-group" role="group" aria-label="..." >
                <button type="button" class="btn btn-success"><span class="glyphicon glyphicon-floppy-save" aria-hidden="true"></span> Salva</button>
                <button type="button" class="btn btn-danger"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> Ripristina</button>
            </div>
        </div>

        <div id='calendar'></div>

        <div style='clear:both'></div>

        <xspan class="tt">x</xspan>

    </div>
</body>
<script>
    var salva = 0; //control variable 

function save(){//to change the control variable value
    salva = 1;
}

function saveEvent(event, title, start, zone){
     $('#myModal').modal('show');

     $('#myModal').on('hidden.bs.modal', function (e) {
                zona_servizio = document.getElementById('mySelect').value;
                if(salva == 1){
                    console.log('before save event', event, title, start, zone);
                    $.ajax({
                        url: 'process.php',
                        data: 'type=new&title='+title+'&startdate='+start+'&zone='+zone+'&zona_servizio='+zona_servizio,
                        type: 'POST',
                        dataType: 'json',
                        success: function(response){
                            event.id = response.eventid;
                            $('#calendar').fullCalendar('updateEvent',event);
                        },
                        error: function(e){
                            console.log(e.responseText);

                        }
                    });
                }else{
                    $('#calendar').fullCalendar('removeEvents');
                    getFreshEvents();
                }
        });


    //$('#calendar').fullCalendar('updateEvent',event);
    salva = 0;
    console.log('end save event', event);
}

    $(document).ready(function() {

        zone = "01:00";  //Change this to your timezone

    $.ajax({
        url: 'process.php',
        type: 'POST', // Send post data
        data: 'type=fetch',
        async: false,
        success: function(s){
            json_events = s;
        }
    });


    var currentMousePos = {
        x: -1,
        y: -1
    };
    jQuery(document).on("mousemove", function (event) {
        currentMousePos.x = event.pageX;
        currentMousePos.y = event.pageY;
    });

    /* initialize the external events
    -----------------------------------------------------------------*/

    $('#external-events .fc-event').each(function() {

        // store data so the calendar knows to render an event upon drop
        $(this).data('event', {
            title: $.trim($(this).text()), // use the element's text as the event title
            stick: true // maintain when user navigates (see docs on the renderEvent method)
        });

        // make the event draggable using jQuery UI
        $(this).draggable({
            zIndex: 999,
            revert: true,      // will cause the event to go back to its
            revertDuration: 0  //  original position after the drag
        });

    });


    /* initialize the calendar
    -----------------------------------------------------------------*/

    $('#calendar').fullCalendar({
        events: JSON.parse(json_events),
        //events: [{"id":"14","title":"New Event","start":"2015-01-24T16:00:00+04:00","allDay":false}],
        utc: true,
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        editable: true,
        droppable: true, 
        slotDuration: '00:30:00',
        **eventReceive**: function(event){
            var title = event.title;
            var start = event.start.format("YYYY-MM-DD[T]HH:mm:SS");
            console.log('event Receive', event, title, start, zone);
            saveEvent(event, title, start, zone);

        },
        eventDrop: function(event, delta, revertFunc) {
            var title = event.title;
            var start = event.start.format();
            var end = (event.end == null) ? start : event.end.format();
            $.ajax({
                url: 'process.php',
                data: 'type=resetdate&title='+title+'&start='+start+'&end='+end+'&eventid='+event.id,
                type: 'POST',
                dataType: 'json',
                success: function(response){
                    if(response.status != 'success')                            
                    revertFunc();
                },
                error: function(e){                     
                    revertFunc();
                    alert('Error processing your request: '+e.responseText);
                }
            });
        },
        eventClick: function(event, jsEvent, view) {
            console.log(event.id);
              var title = prompt('Event Title:', event.title, { buttons: { Ok: true, Cancel: false} });
              if (title){
                  event.title = title;
                  console.log('type=changetitle&title='+title+'&eventid='+event.id);
                  $.ajax({
                        url: 'process.php',
                        data: 'type=changetitle&title='+title+'&eventid='+event.id,
                        type: 'POST',
                        dataType: 'json',
                        success: function(response){    
                            if(response.status == 'success')                            
                                $('#calendar').fullCalendar('updateEvent',event);
                        },
                        error: function(e){
                            alert('Error processing your request: '+e.responseText);
                        }
                    });
              }
        },
        eventResize: function(event, delta, revertFunc) {
            console.log(event);
            var title = event.title;
            var end = event.end.format();
            var start = event.start.format();
            $.ajax({
                url: 'process.php',
                data: 'type=resetdate&title='+title+'&start='+start+'&end='+end+'&eventid='+event.id,
                type: 'POST',
                dataType: 'json',
                success: function(response){
                    if(response.status != 'success')                            
                    revertFunc();
                },
                error: function(e){                     
                    revertFunc();
                    alert('Error processing your request: '+e.responseText);
                }
            });
        },
        eventDragStop: function (event, jsEvent, ui, view) {
            if (isElemOverDiv()) {
                var con = confirm('Are you sure to delete this event permanently?');
                if(con == true) {
                    $.ajax({
                        url: 'process.php',
                        data: 'type=remove&eventid='+event.id,
                        type: 'POST',
                        dataType: 'json',
                        success: function(response){
                            console.log(response);
                            if(response.status == 'success'){
                                $('#calendar').fullCalendar('removeEvents');
                                getFreshEvents();
                            }
                        },
                        error: function(e){ 
                            alert('Error processing your request: '+e.responseText);
                        }
                    });
                }   
            }
        }
    });

function getFreshEvents(){
    $.ajax({
        url: 'process.php',
        type: 'POST', // Send post data
        data: 'type=fetch',
        async: false,
        success: function(s){
            freshevents = s;
        }
    });
    $('#calendar').fullCalendar('addEventSource', JSON.parse(freshevents));
}


function isElemOverDiv() {
    var trashEl = jQuery('#trash');

    var ofs = trashEl.offset();

    var x1 = ofs.left;
    var x2 = ofs.left + trashEl.outerWidth(true);
    var y1 = ofs.top;
    var y2 = ofs.top + trashEl.outerHeight(true);

    if (currentMousePos.x >= x1 && currentMousePos.x <= x2 &&
        currentMousePos.y >= y1 && currentMousePos.y <= y2) {
        return true;
    }
    return false;
}

});

&时代;
塞格利塞维齐奥区
选择列表(选择一个):
接近
保存更改
阿根蒂

萨尔瓦 里普里什蒂纳 x
下面是Javascript:

<!----HTML---->
<link href='assets/css/fullcalendar.css' rel='stylesheet' />
<link href='assets/css/fullcalendar.print.css' rel='stylesheet' media='print' />
<script src='assets/js/moment.min.js'></script>
<script src='assets/js/jquery-ui.min.js'></script>
<script src='assets/js/fullcalendar_not_min.js'></script>

<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Scegli Zona di Servizio</h4>
      </div>
      <div class="modal-body" id="myModalBody">
        <div class="form-group">
        <label for="sel1">Select list (select one):</label>
        <select class="form-control" id="mySelect">         
        <?php 
            foreach($zone_servizio_array as $zona){
                echo '<option value="'.$zona->getId().'">'.$zona->getNome().'</option>';
            }
        ?>
        </select>
        </div>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary" onclick="save();" data-dismiss="modal">Save changes</button>
      </div>
    </div>
  </div>
</div>

<body>
    <div id='wrap'>

        <div id='external-events'>
            <h4>Agenti</h4>
            <?php 
                foreach ($agenti_array as $agente){
                    echo '<div class=\'fc-event\'>'.$agente->getNome().' '.$agente->getCognome().'</div>';
                }
            ?>
            <p>
                <img src="assets/img/trashcan.png" id="trash" alt="">
            </p>
        </div>

        <div id='calendar_buttons' align="left">
            <div class="btn-group" role="group" aria-label="..." >
                <button type="button" class="btn btn-success"><span class="glyphicon glyphicon-floppy-save" aria-hidden="true"></span> Salva</button>
                <button type="button" class="btn btn-danger"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> Ripristina</button>
            </div>
        </div>

        <div id='calendar'></div>

        <div style='clear:both'></div>

        <xspan class="tt">x</xspan>

    </div>
</body>
<script>
    var salva = 0; //control variable 

function save(){//to change the control variable value
    salva = 1;
}

function saveEvent(event, title, start, zone){
     $('#myModal').modal('show');

     $('#myModal').on('hidden.bs.modal', function (e) {
                zona_servizio = document.getElementById('mySelect').value;
                if(salva == 1){
                    console.log('before save event', event, title, start, zone);
                    $.ajax({
                        url: 'process.php',
                        data: 'type=new&title='+title+'&startdate='+start+'&zone='+zone+'&zona_servizio='+zona_servizio,
                        type: 'POST',
                        dataType: 'json',
                        success: function(response){
                            event.id = response.eventid;
                            $('#calendar').fullCalendar('updateEvent',event);
                        },
                        error: function(e){
                            console.log(e.responseText);

                        }
                    });
                }else{
                    $('#calendar').fullCalendar('removeEvents');
                    getFreshEvents();
                }
        });


    //$('#calendar').fullCalendar('updateEvent',event);
    salva = 0;
    console.log('end save event', event);
}

    $(document).ready(function() {

        zone = "01:00";  //Change this to your timezone

    $.ajax({
        url: 'process.php',
        type: 'POST', // Send post data
        data: 'type=fetch',
        async: false,
        success: function(s){
            json_events = s;
        }
    });


    var currentMousePos = {
        x: -1,
        y: -1
    };
    jQuery(document).on("mousemove", function (event) {
        currentMousePos.x = event.pageX;
        currentMousePos.y = event.pageY;
    });

    /* initialize the external events
    -----------------------------------------------------------------*/

    $('#external-events .fc-event').each(function() {

        // store data so the calendar knows to render an event upon drop
        $(this).data('event', {
            title: $.trim($(this).text()), // use the element's text as the event title
            stick: true // maintain when user navigates (see docs on the renderEvent method)
        });

        // make the event draggable using jQuery UI
        $(this).draggable({
            zIndex: 999,
            revert: true,      // will cause the event to go back to its
            revertDuration: 0  //  original position after the drag
        });

    });


    /* initialize the calendar
    -----------------------------------------------------------------*/

    $('#calendar').fullCalendar({
        events: JSON.parse(json_events),
        //events: [{"id":"14","title":"New Event","start":"2015-01-24T16:00:00+04:00","allDay":false}],
        utc: true,
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        editable: true,
        droppable: true, 
        slotDuration: '00:30:00',
        **eventReceive**: function(event){
            var title = event.title;
            var start = event.start.format("YYYY-MM-DD[T]HH:mm:SS");
            console.log('event Receive', event, title, start, zone);
            saveEvent(event, title, start, zone);

        },
        eventDrop: function(event, delta, revertFunc) {
            var title = event.title;
            var start = event.start.format();
            var end = (event.end == null) ? start : event.end.format();
            $.ajax({
                url: 'process.php',
                data: 'type=resetdate&title='+title+'&start='+start+'&end='+end+'&eventid='+event.id,
                type: 'POST',
                dataType: 'json',
                success: function(response){
                    if(response.status != 'success')                            
                    revertFunc();
                },
                error: function(e){                     
                    revertFunc();
                    alert('Error processing your request: '+e.responseText);
                }
            });
        },
        eventClick: function(event, jsEvent, view) {
            console.log(event.id);
              var title = prompt('Event Title:', event.title, { buttons: { Ok: true, Cancel: false} });
              if (title){
                  event.title = title;
                  console.log('type=changetitle&title='+title+'&eventid='+event.id);
                  $.ajax({
                        url: 'process.php',
                        data: 'type=changetitle&title='+title+'&eventid='+event.id,
                        type: 'POST',
                        dataType: 'json',
                        success: function(response){    
                            if(response.status == 'success')                            
                                $('#calendar').fullCalendar('updateEvent',event);
                        },
                        error: function(e){
                            alert('Error processing your request: '+e.responseText);
                        }
                    });
              }
        },
        eventResize: function(event, delta, revertFunc) {
            console.log(event);
            var title = event.title;
            var end = event.end.format();
            var start = event.start.format();
            $.ajax({
                url: 'process.php',
                data: 'type=resetdate&title='+title+'&start='+start+'&end='+end+'&eventid='+event.id,
                type: 'POST',
                dataType: 'json',
                success: function(response){
                    if(response.status != 'success')                            
                    revertFunc();
                },
                error: function(e){                     
                    revertFunc();
                    alert('Error processing your request: '+e.responseText);
                }
            });
        },
        eventDragStop: function (event, jsEvent, ui, view) {
            if (isElemOverDiv()) {
                var con = confirm('Are you sure to delete this event permanently?');
                if(con == true) {
                    $.ajax({
                        url: 'process.php',
                        data: 'type=remove&eventid='+event.id,
                        type: 'POST',
                        dataType: 'json',
                        success: function(response){
                            console.log(response);
                            if(response.status == 'success'){
                                $('#calendar').fullCalendar('removeEvents');
                                getFreshEvents();
                            }
                        },
                        error: function(e){ 
                            alert('Error processing your request: '+e.responseText);
                        }
                    });
                }   
            }
        }
    });

function getFreshEvents(){
    $.ajax({
        url: 'process.php',
        type: 'POST', // Send post data
        data: 'type=fetch',
        async: false,
        success: function(s){
            freshevents = s;
        }
    });
    $('#calendar').fullCalendar('addEventSource', JSON.parse(freshevents));
}


function isElemOverDiv() {
    var trashEl = jQuery('#trash');

    var ofs = trashEl.offset();

    var x1 = ofs.left;
    var x2 = ofs.left + trashEl.outerWidth(true);
    var y1 = ofs.top;
    var y2 = ofs.top + trashEl.outerHeight(true);

    if (currentMousePos.x >= x1 && currentMousePos.x <= x2 &&
        currentMousePos.y >= y1 && currentMousePos.y <= y2) {
        return true;
    }
    return false;
}

});

var-salva=0//控制变量
函数save(){//更改控制变量值
salva=1;
}
函数saveEvent(事件、标题、开始、区域){
$('myModal').modal('show');
$('#myModal').on('hidden.bs.modal',函数(e){
zona_servizio=document.getElementById('mySelect').value;
如果(salva==1){
console.log('保存事件之前',事件,标题,开始,区域);
$.ajax({
url:'process.php',
数据:'type=new&title='+title+'&startdate='+start+'&zone='+zone+'&zona_servizio='+zona_servizio,
键入:“POST”,
数据类型:“json”,
成功:功能(响应){
event.id=response.eventid;
$(“#日历”).fullCalendar('updateEvent',event);
},
错误:函数(e){
console.log(如responseText);
}
});
}否则{
$(“#calendar”).fullCalendar('removeEvents');
getFreshEvents();
}
});
//$(“#日历”).fullCalendar('updateEvent',event);
salva=0;
console.log('end save event',event);
}
$(文档).ready(函数(){
zone=“01:00”;//将其更改为您的时区
$.ajax({
url:'process.php',
键入:“POST”,//发送POST数据
数据:'type=fetch',
async:false,
成功:功能{
json_事件=s;
}
});
var currentMousePos={
x:-1,
y:-1
};
jQuery(文档).on(“mousemove”,函数(事件){
currentMousePos.x=event.pageX;
currentMousePos.y=event.pageY;
});
/*初始化外部事件
-----------------------------------------------------------------*/
$('#external events.fc event')。每个(函数(){
//存储数据,以便日历知道在删除时呈现事件
$(此).data('事件'{
title:$.trim($(this).text()),//使用元素的文本作为事件标题
stick:true//在用户导航时进行维护(请参阅renderEvent方法中的文档)
});
//使用jQuery UI使事件可拖动
$(此)。可拖动({
zIndex:999,
revert:true,//将导致事件返回其初始状态
revertDuration:0//拖动后的原始位置
});
});
/*初始化日历
-----------------------------------------------------------------*/
$(“#日历”).fullCalendar({
事件:JSON.parse(JSON_事件),
//事件:[{“id”:“14”,“标题”:“新事件”,“开始”:“2015-01-24T16:00:00+04:00”,“全天”:假],
utc:是的,
标题:{
左:“上一个,下一个今天”,
中心:'标题',
右图:“月,agendaWeek,agendaDay”
},
是的,
真的,
慢速持续时间:“00:30:00”,
**eventReceive**:函数(事件){
var title=event.title;
var start=event.start.format(“YYYY-MM-DD[T]HH:MM:SS”);
日志('事件接收'、事件、标题、开始、区域);
saveEvent(事件、标题、开始、区域);
},
eventDrop:函数(事件、增量、恢复函数){
var title=event.title;
var start=event.start.format();
var end=(event.end==null)?开始:event.end.format();
$.ajax({
url:'process.php',
数据:'type=resetdate&title='+title+'&start='+start+'&end='+end+'&eventid='+event.id,
键入:“POST”,
数据类型:“json”,
成功:功能(响应){
if(response.status!=“success”)
revertFunc();
},
错误:函数(e){
revertFunc();
警报(“处理请求时出错:”+e.responseText);
}
});
},
eventClick:函数(事件、jsEvent、视图){
console.log(event.id);
var title=prompt('Event title:',Event.title,{按钮:{Ok:true,Cancel:false}});
如果(标题){
event.title=标题;
console.log('type=changetTitle&title='+title+'&eventid='+event.id);
$.ajax({
url:'process.php',
数据:'type=changetTitle&title='+title+'&eventid='+event.id,
键入:“POST”,
数据类型:“json”,
成功:功能(响应){
如果(response.status==“success”)
$(“#日历”).fullCalendar('updateEvent',event);
},
错误:函数(e){
警报(“处理请求时出错:”+e.responseText);
}
});
}
},
eventResize:函数(事件、增量、恢复函数){
控制台