2

FullCalendarをCodeigniterアプリで動作させようとしていますが、JSONフィードから終日表示されるイベントで問題が発生します。

「allDay」:falseを設定すると問題が解決することがわかりました(静的jsonファイルでテスト済み)が、その値をmysql DBに保存し、データを返し、JSONエンコードを実行すると、Falseが文字列に変換されます、イベントが終日表示される原因になります。

DBにtrueまたは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"
   }
]

どんな助けでも本当にありがたいです-私はそれらのbloomin引用符をfalse/trueから取り除く必要があります、そしてそれは完全に機能します!

ありがとう

4

1 に答える 1

1

DB の列タイプをテキストではなくブール値に変更してみませんか? また、 $json オブジェクトを解析して、カレンダーに設定する前にすべての booleans_as_text をブール値に変換することもできます-クイックグーグルでこれを見つけました:

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

各イベントで set allday: false を回避するために to をallDayDefault設定することもできます。false

于 2012-06-14T00:21:59.543 に答える