Cake PHP 2.x保存表单什么也没做

时间:2014-06-02 08:04:24

标签: jquery forms cakephp

我是cakePhP的新手,我需要你的帮助。

我正在尝试制作管理活动的日历。所以我选择了fullcalendar jQuery插件来做到这一点。然后,我按照本教程将日历集成到我的项目中,以便在我的数据库中存储事件:

link to the tutorial

我知道它涉及旧版本的cakePHP,但我一直在继续,直到我分享的部分。我的日历正确显示存储在我数据库中的事件。但我不能添加事件, 这是真正的问题。 我在add.ctp视图中使用了一个保存表单,如下所示:`

<?php


    echo $this->Form->create("Event",array('action'=>'add'));   
    echo $this->Form->input('title' , array('label' => 'Nom de l\'absence'));
    echo '<br/> Quand : ' . $displayTime;
    echo $this->Form->input('allday', array('type'=>'hidden','value'=>$event['Event']['allday']));
    echo $this->Form->input('start', array('type'=>'hidden','value'=>$event['Event']['start']));
    echo $this->Form->input('end', array('type'=>'hidden','value'=>$event['Event']['end']));

    echo  $this->Form->end(array('label'=>'Save' ,'name' => 'save'));

?>
<input type="button" value="Retour" onclick="back();">
<script type="text/javascript">
    function back() {
        window.location.href ="/calendars/display";
    }
</script>

`

当我点击我日历上的某一天时,它会正确启动表单,但是当我点击“保存”时,没有任何反应。

这就是我的表格制作方式:

CREATE TABLE IF NOT EXISTS `events` (
  `id` int(11) NOT NULL,
  `title` varchar(50) NOT NULL,
  `allday` tinyint(1) NOT NULL,
  `start` datetime NOT NULL,
  `end` datetime DEFAULT NULL,
  `editable` tinyint(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

这是控制器中的'添加':

function add($allday=null,$day=null,$month=null,$year=null,$hour=null,$min=null) {
if($this->request->is('post')) {
    //Create and save the new event in the table.
    $this->Event->create();
    $this->data['Event']['editable']='1';

    if($this->Event->save($data)){
        $this->Session->setFlash('GG');
    }
    else {
            $this->Session->setFlash('ERROR');
    }
}else{
    //Set default duration: 1hr and format to a leading zero.
    $hourPlus=intval($hour)+1;
    if (strlen($hourPlus)==1) {
        $hourPlus = '0'.$hourPlus;
    }

    //Create a time string to display in view. 
    if ($allday=='true') {
        $event['Event']['allday'] = 1;
        $displayTime = 'All day event: ('
            . date('D',strtotime($day.'/'.$month.'/'.$year)).' '.
            $day.' / '. date("M", mktime(0, 0, 0, $month, 10)).')';
    } else {
        $event['Event']['allday'] = 0;
        $displayTime = date('D',strtotime($day.'/'.$month.'/'.$year)).' '
            .$day.' / '.date("M", mktime(0, 0, 0, $month, 10)).
            ', '.$hour.' : '.$min.' &mdash; '.$hourPlus.' : '.$min;
    }
    $this->set("displayTime",$displayTime);

    //Populate the event fields for the add form
    $event['Event']['title'] = 'Nom de l\'événement';
    $event['Event']['start'] = $year.'-'.$month.'-'.$day.' '.$hour.':'.$min.':00';
    $event['Event']['end'] = $year.'-'.$month.'-'.$day.' '.$hourPlus.':'.$min.':00';
    $this->set('event',$event);

    $this->layout="ajax";
}

它进入我的第一个其他区块然后向我显示“ERROR”。 我使用调试器但似乎没有任何异常。 validationErrors()数组为空, 完成的最后一个查询是一个acos,aros和权限,数组内容是好的数据,准备存储,但不想保存...

你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

我回答我自己的问题:在线

如果($这 - &GT;事件 - &GT;保存($数据)){

只需用$ this-&gt; data

替换$ data

带我好几天才能摆脱耻辱