FullCalendar,JSON 数组为空但正在处理 PHP 文件
FullCalendar, JSON array empty but working on PHP file
我正在使用 MySQL 数据库配置 FullCalendar,使用 PHP 进行处理,return 使用 JSON。
- db-connect.php - 从我的 Db 中获取结果并编码为 JSON.
- get-events.php - 读取 JSON,转换为 FullCalendar
- json.html - 是我的前端日历视图
以下文件内容,但在阅读之前:db-connect.php
成功输出 JSON 我已在 JSONLint 上验证。
[{"title":"Test new calendar","start":"2015-07-21","end":"2015-07-22"}]
get-events.php
成功 'reading' db-connect.php
因为我的前端视图上的 "php/get-events.php must be running." 错误消息已经消失(例如显示它无法确定db-connect.php
在目录中,或文件名拼写错误等)。
然而,当我通过 params
传递查询或检查 Firebug 控制台时,JSON 数组为空。
/cal/demos/php/get-events.php?start=2015-07-01&end=2015-07-31
returns []
而我的测试日历条目确实符合这些参数。
我确信这是我的 db-connect.php
错误,但我正在摸不着头脑。相对新手,所以我相信这很明显!
db-connect.php
<?php
$db = mysql_connect("localhost:3306","root","");
if (!$db) {
die('Could not connect to db: ' . mysql_error());
}
mysql_select_db("test",$db);
$result = mysql_query("select * from cal", $db);
$json_response = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$row_array['id'] = $row['id'];
$row_array['title'] = $row['title'];
$row_array['start'] = $row['start'];
$row_array['end'] = $row['end'];
array_push($json_response,$row_array);
}
echo json_encode($json_response);
mysql_close($db);
?>
get-events.php
<?php
// Require our Event class and datetime utilities
require dirname(__FILE__) . '/utils.php';
if (!isset($_GET['start']) || !isset($_GET['end'])) {
die("Please provide a date range.");
}
$range_start = parseDateTime($_GET['start']);
$range_end = parseDateTime($_GET['end']);
$timezone = null;
if (isset($_GET['timezone'])) {
$timezone = new DateTimeZone($_GET['timezone']);
}
$json = file_get_contents(dirname(__FILE__) . '/db-connect.php');
$input_arrays = json_decode($json, true);
$output_arrays = array();
if (is_array($input_arrays) || is_object($input_arrays))
{
foreach ($input_arrays as $array) {
$event = new Event($array, $timezone);
if ($event->isWithinDayRange($range_start, $range_end)) {
$output_arrays[] = $event->toArray();
}
}
}
echo json_encode($output_arrays);
file_get_contents
不解析 php 文件。在这种情况下,它将输出程序代码。将此函数添加到您的 get-events.php
function loadPhpFile($file) {
ob_start();
include $file;
$content = ob_get_contents();
ob_end_clean();
return $content;
}
然后替换
$json = file_get_contents(dirname(__FILE__) . '/db-connect.php');
和
$json = loadPhpFile(dirname(__FILE__) . '/db-connect.php');
提示:请使用对象 (OOP) 和 mysqli。 PHP Mysqli
我正在使用 MySQL 数据库配置 FullCalendar,使用 PHP 进行处理,return 使用 JSON。
- db-connect.php - 从我的 Db 中获取结果并编码为 JSON.
- get-events.php - 读取 JSON,转换为 FullCalendar
- json.html - 是我的前端日历视图
以下文件内容,但在阅读之前:db-connect.php
成功输出 JSON 我已在 JSONLint 上验证。
[{"title":"Test new calendar","start":"2015-07-21","end":"2015-07-22"}]
get-events.php
成功 'reading' db-connect.php
因为我的前端视图上的 "php/get-events.php must be running." 错误消息已经消失(例如显示它无法确定db-connect.php
在目录中,或文件名拼写错误等)。
然而,当我通过 params
传递查询或检查 Firebug 控制台时,JSON 数组为空。
/cal/demos/php/get-events.php?start=2015-07-01&end=2015-07-31
returns []
而我的测试日历条目确实符合这些参数。
我确信这是我的 db-connect.php
错误,但我正在摸不着头脑。相对新手,所以我相信这很明显!
db-connect.php
<?php
$db = mysql_connect("localhost:3306","root","");
if (!$db) {
die('Could not connect to db: ' . mysql_error());
}
mysql_select_db("test",$db);
$result = mysql_query("select * from cal", $db);
$json_response = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$row_array['id'] = $row['id'];
$row_array['title'] = $row['title'];
$row_array['start'] = $row['start'];
$row_array['end'] = $row['end'];
array_push($json_response,$row_array);
}
echo json_encode($json_response);
mysql_close($db);
?>
get-events.php
<?php
// Require our Event class and datetime utilities
require dirname(__FILE__) . '/utils.php';
if (!isset($_GET['start']) || !isset($_GET['end'])) {
die("Please provide a date range.");
}
$range_start = parseDateTime($_GET['start']);
$range_end = parseDateTime($_GET['end']);
$timezone = null;
if (isset($_GET['timezone'])) {
$timezone = new DateTimeZone($_GET['timezone']);
}
$json = file_get_contents(dirname(__FILE__) . '/db-connect.php');
$input_arrays = json_decode($json, true);
$output_arrays = array();
if (is_array($input_arrays) || is_object($input_arrays))
{
foreach ($input_arrays as $array) {
$event = new Event($array, $timezone);
if ($event->isWithinDayRange($range_start, $range_end)) {
$output_arrays[] = $event->toArray();
}
}
}
echo json_encode($output_arrays);
file_get_contents
不解析 php 文件。在这种情况下,它将输出程序代码。将此函数添加到您的 get-events.php
function loadPhpFile($file) {
ob_start();
include $file;
$content = ob_get_contents();
ob_end_clean();
return $content;
}
然后替换
$json = file_get_contents(dirname(__FILE__) . '/db-connect.php');
和
$json = loadPhpFile(dirname(__FILE__) . '/db-connect.php');
提示:请使用对象 (OOP) 和 mysqli。 PHP Mysqli