Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/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 在JQuery FullCalendar中填充PHP数据_Javascript_Php_Ajax_Jquery - Fatal编程技术网

Javascript 在JQuery FullCalendar中填充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(); /*-------------------------------------------------------

我有一个JQuery日历插件,我目前正在使用,到目前为止,我一直在试图找出如何使用AJAX从PHP文件中填充日历信息

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,它应该是什么样子的吗?你应该能够像打印数据一样回显它,这取决于它需要如何格式化。不:|不要从服务器上评估任何内容。你是对的,这比我想象的要容易得多。杰森·恩多克工作了。