在Yii中使用Ajax保存数据

时间:2014-03-10 09:55:55

标签: jquery ajax yii

我在控制器中创建了一个ajax动作,以便在我的帖子中保存特定数据。 我不需要渲染视图。

我的jquery脚本正在执行以下操作

$("#buttonExtend<?php echo $this->post_row;?>").click(function(e){
            $.ajax({
               type: "POST",
               url: "<?php echo Yii::app()->createUrl('post/extend', array('id' => $data['id'])); ?>",
                          });
        });

我的动作扩展包含以下内容

protected function actionExtend($id)
    {
        $model=$this->loadModel($id);



        if(Yii::app()->request->isAjaxRequest) {


            $model->toDate = '10/10/2013';

            $model->save();
    }

}

当我在mysql中检查记录时,to_date字段未填充。

即使在模型中我的beforevalidate函数中更新的更新字段也会更新。

我的错误在哪里?

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

我认为您应该检查数据库表中字段'to_date'的数据类型

如果是日期时间时间,则需要以格式指定日期时间,例如:'2014-02-04 19:39:12'。 < / p>

还尝试在model-&gt; save()(print_r($ model-&gt; attributes))之后打印模型属性。

这可能会对你有帮助。

感谢。

答案 1 :(得分:0)

您应该检查您的模型是否保存。 替换:

$model->save();

使用:

if(!$model->save()){
    var_dump($model->errors);
    exit();
}

如果没有,上面的代码将打印原因。 (它可能会在您的Ajax响应中打印出来。)

如果这不能解决您的问题,您可以检查模型的验证规则和数据库数据类型。