-
-
Save adijvlian/1de3fd2e0d6c05c53de135c001c5cbd6 to your computer and use it in GitHub Desktop.
<?php | |
class CalendarController extends ControllerBase | |
{ | |
public function indexAction() | |
{ | |
include "incld/load.php"; | |
include "incld/insert.php"; | |
include "incld/update.php"; | |
include "incld/delete.php"; | |
} | |
} |
<?php | |
//delete.php | |
if(isset($_POST["id"])) | |
{ | |
$connect = new PDO('mysql:host=localhost;dbname=test', 'root', ''); | |
$query = " | |
DELETE from event WHERE id=:id | |
"; | |
$statement = $connect->prepare($query); | |
$statement->execute( | |
array( | |
':id' => $_POST['id'] | |
) | |
); | |
} | |
?> |
<!DOCTYPE html> | |
<html> | |
<head> | |
<title>Jquery Fullcalandar Integration with PHP and Mysql</title> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.css" /> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.css" /> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.min.js"></script> | |
<script> | |
$(document).ready(function() { | |
var calendar = $('#calendar').fullCalendar({ | |
editable:true, | |
header:{ | |
left:'prev,next today', | |
center:'title', | |
right:'month,agendaWeek,agendaDay' | |
}, | |
events: 'load.php', | |
selectable:true, | |
selectHelper:true, | |
select: function(start, end, allDay) | |
{ | |
var title = prompt("Enter Event Title"); | |
if(title) | |
{ | |
var start = $.fullCalendar.formatDate(start, "Y-MM-DD HH:mm:ss"); | |
var end = $.fullCalendar.formatDate(end, "Y-MM-DD HH:mm:ss"); | |
$.ajax({ | |
url:"insert.php", | |
type:"POST", | |
data:{title:title, start:start, end:end}, | |
success:function() | |
{ | |
calendar.fullCalendar('refetchEvents'); | |
alert("Added Successfully"); | |
} | |
}) | |
} | |
}, | |
editable:true, | |
eventResize:function(event) | |
{ | |
var start = $.fullCalendar.formatDate(event.start, "Y-MM-DD HH:mm:ss"); | |
var end = $.fullCalendar.formatDate(event.end, "Y-MM-DD HH:mm:ss"); | |
var title = event.title; | |
var id = event.id; | |
$.ajax({ | |
url:"update.php", | |
type:"POST", | |
data:{title:title, start:start, end:end, id:id}, | |
success:function(){ | |
calendar.fullCalendar('refetchEvents'); | |
alert('Event Update'); | |
} | |
}) | |
}, | |
eventDrop:function(event) | |
{ | |
var start = $.fullCalendar.formatDate(event.start, "Y-MM-DD HH:mm:ss"); | |
var end = $.fullCalendar.formatDate(event.end, "Y-MM-DD HH:mm:ss"); | |
var title = event.title; | |
var id = event.id; | |
$.ajax({ | |
url:"update.php", | |
type:"POST", | |
data:{title:title, start:start, end:end, id:id}, | |
success:function() | |
{ | |
calendar.fullCalendar('refetchEvents'); | |
alert("Event Updated"); | |
} | |
}); | |
}, | |
eventClick:function(event) | |
{ | |
if(confirm("Are you sure you want to remove it?")) | |
{ | |
var id = event.id; | |
$.ajax({ | |
url:"delete.php", | |
type:"POST", | |
data:{id:id}, | |
success:function() | |
{ | |
calendar.fullCalendar('refetchEvents'); | |
alert("Event Removed"); | |
} | |
}) | |
} | |
}, | |
}); | |
}); | |
</script> | |
</head> | |
<body> | |
<br /> | |
<h2 align="center"><a href="#">Jquery Fullcalandar Integration with PHP and Mysql</a></h2> | |
<br /> | |
<div class="container"> | |
<div id="calendar"></div> | |
</div> | |
</body> | |
</html> |
<?php | |
//insert.php | |
$connect = new PDO('mysql:host=localhost;dbname=test', 'root', ''); | |
if(isset($_POST["title"])) | |
{ | |
$query = " | |
INSERT INTO event | |
(title, start_event, end_event) | |
VALUES (:title, :start_event, :end_event) | |
"; | |
$statement = $connect->prepare($query); | |
$statement->execute( | |
array( | |
':title' => $_POST['title'], | |
':start_event' => $_POST['start'], | |
':end_event' => $_POST['end'] | |
) | |
); | |
} | |
?> |
<?php | |
//load.php | |
$connect = new PDO('mysql:host=localhost;dbname=test', 'root', ''); | |
$data = array(); | |
$query = "SELECT * FROM event ORDER BY id"; | |
$statement = $connect->prepare($query); | |
$statement->execute(); | |
$result = $statement->fetchAll(); | |
foreach($result as $row) | |
{ | |
$data[] = array( | |
'id' => $row["id"], | |
'title' => $row["title"], | |
'start' => $row["start_event"], | |
'end' => $row["end_event"] | |
); | |
} | |
echo json_encode($data); | |
?> |
<?php | |
//update.php | |
$connect = new PDO('mysql:host=localhost;dbname=test', 'root', ''); | |
if(isset($_POST["id"])) | |
{ | |
$query = " | |
UPDATE event | |
SET title=:title, start_event=:start_event, end_event=:end_event | |
WHERE id=:id | |
"; | |
$statement = $connect->prepare($query); | |
$statement->execute( | |
array( | |
':title' => $_POST['title'], | |
':start_event' => $_POST['start'], | |
':end_event' => $_POST['end'], | |
':id' => $_POST['id'] | |
) | |
); | |
} | |
?> |
I have got it working for v4.
`eventDrop: function(info) { // called when an event (already on the calendar) is moved
console.log('Afspraak verplaats', info.event.title);
var start = info.event.start.toISOString().slice(0, 19).replace('T', ' ');
var end = info.event.end.toISOString().slice(0, 19).replace('T', ' ');
var id = info.event.id;
if (info.newResource) {
var recourceid = info.newResource.id;
$.ajax({
type: 'POST',
url: 'update.php',
data: 'id=' + id + '&start=' + start + '&end=' + end + '&resourceId=' + recourceid,
success: function(response) {
console.log('succes:', info.event.title);
console.log('Eind tijd:', info.event.end.toISOString().slice(0, 19).replace('T', ' '));
console.log('ID:', info.event.id);
calendar.rerenderEvents();
},
});
} else {
var recourceid = "";
console.log('Type Auto:', recourceid);
$.ajax({
type: 'POST',
url: 'update.php',
data: 'id=' + id + '&start=' + start + '&end=' + end + '&resourceId=' + recourceid,
success: function(response) {
console.log('succes:', info.event.title);
console.log('start tijd:', info.event.start.toISOString().slice(0, 19).replace('T', ' '));
console.log('Eind tijd:', info.event.end.toISOString().slice(0, 19).replace('T', ' '));
console.log('ID:', info.event.id);
console.log('auto:', recourceid);
calendar.rerenderEvents();
},
});
}
}`
I have got it working for v4.
`eventDrop: function(info) { // called when an event (already on the calendar) is moved
console.log('Afspraak verplaats', info.event.title);
var start = info.event.start.toISOString().slice(0, 19).replace('T', ' ');
var end = info.event.end.toISOString().slice(0, 19).replace('T', ' ');
var id = info.event.id;
if (info.newResource) {
var recourceid = info.newResource.id;$.ajax({ type: 'POST', url: 'update.php', data: 'id=' + id + '&start=' + start + '&end=' + end + '&resourceId=' + recourceid, success: function(response) { console.log('succes:', info.event.title); console.log('Eind tijd:', info.event.end.toISOString().slice(0, 19).replace('T', ' ')); console.log('ID:', info.event.id); calendar.rerenderEvents(); }, }); } else { var recourceid = ""; console.log('Type Auto:', recourceid); $.ajax({ type: 'POST', url: 'update.php', data: 'id=' + id + '&start=' + start + '&end=' + end + '&resourceId=' + recourceid, success: function(response) { console.log('succes:', info.event.title); console.log('start tijd:', info.event.start.toISOString().slice(0, 19).replace('T', ' ')); console.log('Eind tijd:', info.event.end.toISOString().slice(0, 19).replace('T', ' ')); console.log('ID:', info.event.id); console.log('auto:', recourceid); calendar.rerenderEvents(); }, }); } }`
Do you have a full example?
I don't understand - where is the original class 'ControllerBase' which 'CalendarController' extends?
Also - darkterminal - have you successfully tested this under ver. 4 yet?
I am also very interested!