2

我正在使用完整的日历,并且我有一些全天活动。一般来说,我的 php 设置了所有'allDay' => 'false'. 现在我注意到如果我不指定时间,它会添加一个时间。

我想将所有值的所有默认值设置为 false,除非我将它们指定为 true。

我的 php 获取如下:

$sql = "SELECT `id`, `title`, `time`, `start`, `end`, `url`, `backgroundColor`, `textColor`, `className`,
   `allDay` FROM calender WHERE length('column') > '0'";

$result = $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);

foreach ($result as $row){
    $return[]=array('id'=>$row['id'],
                'title'=>$row['title'],
                "allDay" =>$row['allDay'],
                'start'=>$row['start'].' '.$row['time'],
                'end'=>$row['end'],
                'url'=>$row['url'],
                'backgroundColor'=>$row['backgroundColor'],
                'textColor'=>$row['textColor'],
                'className' =>$row['className']);
}
$dbh = null;

header('Content-type: application/json');
echo json_encode($return);

jQuery函数是:

$(document).ready(function() {
    $('#calendar').fullCalendar({
    editable: false,
    events: "json-events.php", 
    eventDrop: function(event, delta) {
            alert(event.title + ' was moved ' + delta + ' days\n' +
                '(You cannot update these fields!)');
        },
        loading: function(bool) {
            if (bool) $('#loading').show();
            else $('#loading').hide();
        },
    });
});

我不知道我在哪里添加值。我让 mySQL 将“allDay”存储为真/假,但它以字符串形式返回。所以我实际上知道如何在 json 对文件进行编码之前对其进行隐藏。或者在查看数据后让 jQuery/javascript 更改它。

4

3 回答 3

2

MySQL 中的 allDay 字段是什么类型的?如果是enum('true', 'false'),那可能是你的问题。这将转换为字符串。我曾经有人这样做过,我花了很长时间才弄清楚为什么我认为布尔值(或整数)是字符串。

仔细检查您的数据库并尝试将其设为 atinyint(1)并使用 0 表示假,使用 1 表示真。PHP 的布尔值 true 和 false 将被转换为相应的整数,在 JavaScript 中使用 0/1 不会有问题。

于 2012-04-18T20:49:25.083 回答
0

你也可以试试这个:

$sql = "SELECT `id`, `title`, `time`, `start`, `end`, `url`, `backgroundColor`, `textColor`, `className`, IF(`allDay` = 'true',true,false) AS allDay  FROM calender WHERE length('column') > '0'";
于 2012-11-30T13:25:56.040 回答
0

尝试这个:

foreach ($result as $row){
    $return[]=array('id'=>$row['id'],
                'title'=>$row['title'],
                "allDay" =>$row['allDay'] == "true",
                'start'=>$row['start'].' '.$row['time'],
                'end'=>$row['end'],
                'url'=>$row['url'],
                'backgroundColor'=>$row['backgroundColor'],
                'textColor'=>$row['textColor'],
                'className' =>$row['className']);
}
$dbh = null;
于 2012-04-18T20:52:05.013 回答