Javascript 在JQuery FullCalendar中填充PHP数据
我有一个JQuery日历插件,我目前正在使用,到目前为止,我一直在试图找出如何使用AJAX从PHP文件中填充日历信息Javascript 在JQuery FullCalendar中填充PHP数据,javascript,php,ajax,jquery,Javascript,Php,Ajax,Jquery,我有一个JQuery日历插件,我目前正在使用,到目前为止,我一直在试图找出如何使用AJAX从PHP文件中填充日历信息 var Script = function () { //历法 var date = new Date(); var d = date.getDate(); var m = date.getMonth(); var y = date.getFullYear(); /*-------------------------------------------------------
var Script = function () {
//历法
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
/*---------------------------------------------------------------------------*/
window.onload = function myfunction() {
var xmlhttp;
if(window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest;
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("calendar").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "../ajax/calendar.php", true);
xmlhttp.send();
}
/*---------------------------------------------------------------------------*/
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
editable: false,
events: [
{
title: 'Lunch',
start: new Date(y, m, d, 12, 0),
end: new Date(y, m, d, 14, 0),
allDay: false
},
]
});
}();
这是PHP文件
<?
$query = mysql_query("SELECT * FROM table WHERE id = '1093'");
do {
$message = $row['message'];
$hour = $row['hour'];
$minute = $row['minute'];
$year = $row['year'];
$month = $row['month'];
$day = $row['day'];
$status = $row['status'];
if(eregi('pending', $status)) {
echo '
{<br>
title: '.$message.',<br>
start: new Date('.$year.', '.$month.', '.$day.', 12, 0),<br>
end: new Date('.$year.', '.$month.', '.$day.', 14, 0),<br>
allDay: false<br>
},
';
}
}while($row = mysql_fetch_array($query));
} else header('location: error.php');
?>
如何从数据库表中获取信息以循环到JQuery插件中?PHP允许您将PHP数组转换为有效的JSON对象
还要确保输出正确的内容类型标题
header('Content-Type: application/json');
echo json_encode($my_datas_from_DB);
只需使用此方法输出您的内容,就可以被JavaScript使用
旁注:JSON不是HTML,在这里无效,因为您尝试手动输出JSON这比您想象的要容易得多,您可以在fullcalendar初始化中将events属性定义为ajax调用,就像这样:
...
events: {
url: '../phpPath/pathToEventScript.php',
dataType: 'json',
type: "POST"
},
...
只需确保对象数组中的每个事件对象都有一个start属性
PHP脚本:
$select = "SELECT title, start FROM events";
$stmt = $db->query($select);
$events = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($events);
这样做:
$.get( "../ajax/calendar.php", function( data ) {
$('#calendar').fullCalendar(eval("(" + data + ")"))
alert( "Calendar initilazed ;)" );
});
您的.js可以是这样的:
$.get( "../ajax/calendar.php", function( data ) {
$('#calendar').fullCalendar(eval("(" + data + ")"))
alert( "Calendar initilazed ;)" );
});
并且你的php文件不必包含
标签作为新行 你能举一个例子,说明如果你不是动态加载Javascript,它应该是什么样子的吗?你应该能够像打印数据一样回显它,这取决于它需要如何格式化。不:|不要从服务器上评估任何内容。你是对的,这比我想象的要容易得多。杰森·恩多克工作了。