为什么我无法在cakephp 2.7中使用jquery ajax更新我的数据

时间:2015-12-20 14:42:15

标签: jquery cakephp-2.7

这是我的代码片段。

CommentsController

public function edit_comments()
{
    $this->autoRender = false;

    $data = json_decode($_POST['data'], true);

    // print_r(json_encode($this->request->data));

    if (empty($data['id']))
    {
        echo "Invalid Post";
    }

    echo $data['id'];

    $post = $this->Comment->viewById($data['id']);

    if (empty($post))
    {
        echo 'Invalid post';
    }

    if ($this->request->is(array('post', 'put'))) {
        $this->Comment->id = $data['id'];
        if ($this->Comment->save($this->request->data)) // I able to bypass this if
        {
            echo "Successfully Updated";
            exit;
        }

        echo "error";
    }
}

这是我的自定义Jquery

$(document).ready(function(){

$('.edit').click(function(e){
    e.preventDefault();
    var comment = $(this).closest('td').prev().children('p.comment-text').text(),
        id = $(this).closest('td').prev().attr('data-id'),
        tag = $(this).closest('td').prev();

        console.log(comment);

        tag.find('textarea#comment').val(comment);
        tag.find('input#comment_id').val(id);
});

$('#update').on('click',function(e){
    e.preventDefault();

    var comment = $('#comment').val(),
        comment_id = $('#comment_id').val(),
        data = {

            comment: comment,
            id: comment_id

        };

    $.ajax({
        type: 'post',
        url: '/stuff/Blog/comments/edit_comments',
        data: {data: JSON.stringify(data)},
        dataType: 'JSON',
        success: function(response){
            console.log(response);
        }

    });

});

});

我的问题是我无法更新数据库中的数据,但我可以打印edit_comment函数中的所有数据。我能够打印出更新后的成功" if内有保存功能。

1 个答案:

答案 0 :(得分:0)

data: {data: JSON.stringify(data)},

应该是

data: JSON.stringify(data),

您可以查看广泛的jQuery ajax API HERE