我有一个荒谬的问题,但即使潜伏了一整天,我也无法解决它。
我有一个Fullcalendar安装,我正在尝试从文件(events.php)中检索事件数据;我通过PHP从MySql 表中加载数据。
问题:
如果我通过 PHP 自动生成提要,事件将不会显示在我的日历中。
但
如果我在我的文件中写下EXACT Json 行,它确实可以正常工作。
例子:
这是我的events.php:
<?php session_start();
header("Content-Type: application/json");
//if (!isset($id_azienda)) die();
$id_azienda = $_GET['id_azienda'];
// Includo la classe
require_once("./db.class.php");
// Creo l'oggetto database
$db = new DataBase();
// Apro la connessione al database e ne memorizzo il risultato in $open
$open = $db->OpenConnection();
$eventiQuery = "SELECT * FROM scadenzario WHERE id_azienda ='$id_azienda'";
// Eseguo la query e ne memorizzo il risultato in $result
$eventiList = $db->Query($eventiQuery);
$numEventi = $db->NumRows($eventiQuery);
// Chiudo la connessione al database e ne memorizzo il risultato in $close
$close = $db->CloseConnection();
/* ************* FINE CARICAMENTO DATI DAL DATABASE ***************** */
while ($record = mysql_fetch_array($eventiList)) {
$event_array[] = array(
'id' => $record['id_scadenzario'],
'title' => $record['titolo'],
'start' => $record['data_inizio'],
'url' => $record['url']
);
}
echo json_encode($event_array);
?>
这将产生:
[{"id":"0","title":"test titolo","start":"2012-09-11","url":"http:\\\/\\\/yahoo.com\\\/"},{"id":"1","title":"test titolo","start":"2012-09-11","url":"http:\\\/\\\/google.com\\\/"}]
它不会显示任何东西。
但是,如果我将其复制并粘贴到文件“ events.php ”中并注释 echo 行:
// echo json_encode($event_array);
?>
[{"id":"0","title":"test titolo","start":"2012-09-11","url":"http:\\\/\\\/yahoo.com\\\/"},{"id":"1","title":"test titolo","start":"2012-09-11","url":"http:\\\/\\\/google.com\\\/"}]
它确实有效。
编辑:我的全日历实现是:
var scadenzario = $('#scadenzario-calendario').fullCalendar({
events: "./events.php",
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
selectable: true,
selectHelper: true,
select: function(start, end, allDay) {
var title = prompt('Nome dell\'evento:');
if (title) {
scadenzario.fullCalendar('renderEvent',
{
title: title,
start: start,
end: end,
allDay: allDay
},
true // make the event "stick"
);
}
scadenzario.fullCalendar('unselect');
},
//editable: true,
theme: true,
buttonText: {
today: 'Oggi',
month: 'Mese',
week: 'Settimana',
day: 'Giorno'
},
monthNames: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'],
monthNamesShort: ['Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu', 'Lug', 'Ago', 'Set', 'Ott', 'Nov', 'Dic'],
dayNames: ['Domenica', 'Lunedi', 'Martedi', 'Mercoledi', 'Giovedi', 'Venerdi', 'Sabato'],
dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab']
});
恕我直言,这有点愚蠢。
笔记:
- 我读到,当我尝试仅解析一个事件时,方括号可能会出现问题:这不是我的情况,我正在尝试使用两个事件;
- 我首先想到的是字符编码,但我尝试过 text/plain 和 application/json,都没有运气;
- url 中多余的斜线是由于过去几年缺乏 Gn'R 低俗硬摇滚风格。大声笑 XD(我的意思是:这不是重点)
- 更新:我还尝试使用 fwrite 创建一个 txt 并将 json 字符串写入文件。没运气。完成工作的唯一方法似乎是手动将代码写入文件。好吧,我可能会认为这是一份工作机会,也许。哈哈。
有任何想法吗?先感谢您 :)
Ps:对不起,代码中的意大利注释和变量,但这不是重点;)