大家好我正在使用Jquery
插件在日历中显示事件,我可以在我的视图文件上看到插件日历,问题是我无法创建有效的json
格式文件插件
这是插件演示页面中给出的格式
<?php
header('Content-type: text/json');
echo '[';
$separator = "";
$days = 16;
echo ' { "date": "1314579600000", "type": "meeting", "title": "Test Last Year" },';
echo ' { "date": "1377738000000", "type": "meeting", "title": "Test Next Year"},';
for ($i = 1 ; $i < $days; $i= 1 + $i * 2) {
echo $separator;
$initTime = (intval(microtime(true))*1000) + (86400000 * ($i-($days/2)));
echo ' { "date": "'; echo $initTime; echo '", "type": "meeting", "title": "Project '; echo $i; echo ' meeting", },';
echo ' { "date": "'; echo $initTime+3600000; echo '", "type": "demo", "title": "Project '; echo $i; echo ' demo" },';
$separator = ",";
}
echo ']';
?>
显示数据的controller
代码应该是什么。我在下面的答案中尝试了格式,但它仍然没有正确显示数据。
我认为我在前端收到的json
格式有问题。第一个图像是我的本地主机,我接收数据,第二个是插件演示和数组格式有点不同,我想这就是问题
答案 0 :(得分:1)
为什么不创建一个控制器并放入一个&#39;事件&#39;动作?
<?php
namespace app\controllers;
class SiteController extends Controller
{
public function actionEvent()
{
/* Input parameters */
$limit = \Yii::$app->request->get('limit');
$year = \Yii::$app->request->get('year');
$month = \Yii::$app->request->get('month');
$day = \Yii::$app->request->get('day');
/* Fill data */
$data = [];
$data[] = [ 'date' => '1314579600000', 'type' => 'meeting', 'title' => 'Test Last Year' ];
/*
...
... other data ...
...
*/
/* Prepare the content output*/
\Yii::$app->response->format = 'json';
echo \yii\helpers\Json::encode($data);
}
}
最后调用动作:
$("#eventCalendarNewWindow").eventCalendar({
eventsjson: "<?php echo \yii\helpers\Url::to(['site/event']) ?>",
openEventInNewWindow: true,
showDescription: true // also it can be false
});