2

我正在尝试让 FullCalendar 在我的 Codeigniter 应用程序上工作,但是遇到了一个问题,即事件从我的 JSON 提要中显示为一整天。

我发现设置 "allDay":false 可以解决问题(使用静态 json 文件测试)但是当我将该值存储在 mysql DB 中,然后返回数据并运行 JSON 编码时,它将 False 转换为字符串,这导致事件显示为一整天!

有谁知道我如何在我的数据库中存储真或假(我目前存储为文本)并将其返回到我的 json 提要而不是字符串?我试过铸造和转换,但什么都做不了!

下面是我的模型/控制器/json 提要的示例;

提前致谢;

模型功能

function show_installs()
{       
    return $this->db->query(
    "SELECT id, client_name as title, start, end, concat('/planner/view_install/',id) as url
    FROM installs WHERE completed != 2"
    )->result();            
}

控制器功能

function json_installs()
{
    $this->load->model('installs_model');
    $data = array();        
    if($query = $this->installs_model->show_installs())
    {
        $data = $query;
    }
    $json = json_encode($data);
    echo $json;
}   

JSON 提要(这不起作用,因为 " 围绕 false )

[
   {
      "id":"18",
      "title":"John",
      "allDay":"false",
      "start":1339585200,
      "end":1339592400,
      "url":"\/planner\/view_install\/18"
   },
   {
      "id":"19",
      "title":"Mike",
      "allDay":"false",
      "start":"1339585200",
      "end":"1339592400",
      "url":"\/planner\/view_install\/19"
   }
]

任何帮助将不胜感激 - 我只需要从 false/true 中删除那些 bloomin 引号,它就会完美地工作!

谢谢

4

1 回答 1

1

为什么不将数据库中的列类型更改为布尔值而不是文本?您还可以解析您的 $json 对象以将所有 booleans_as_text 转换为布尔值,然后再将其设置在日历中 - 快速谷歌搜索发现我:

for(var i=0; i<$json.length; i++)
  $json[i]=/^true$/i.test($json[i]);

您还可以设置allDayDefaulttofalse以避免在每个事件中设置 allday: false。

于 2012-06-14T00:21:59.543 回答