如何在jquery中使用ajax删除数据操作

时间:2015-03-27 15:48:21

标签: jquery ajax codeigniter

当我单击成功从数据库中删除按钮ajax时,我想使用带有CI的ajax删除注释但是当它成功时,jquery remove函数无法正常工作并且我收到此错误

Uncaught TypeError: Cannot read property 'remove' of undefined

但当我检查我的数据库时,它已成功从数据库中删除 这是我的HTML代码。

<?php 
                                            if($this->session->userdata('u_id'))://session check s here
                                        ?> 
                                        <li role="presentation">
                                            <a role="menuitem" tabindex="-1" href="javascript:void(0)" class="delete_comment" data-id="<?php echo $row->video_comment_id ?>" data-action="<?php echo site_url('videosd/deletecomment') ?>">
                                                Delete
                                            </a>
                                        </li>
                                       <?php endif 

这是我的jQuery代码:

$('.delete_comment').click(function(){
        var comment_id = $(this).data('id'); 
        //alert(comment_id);
                $.ajax({
                    url: $(this).data('action'),
                    type: 'POST',
                    data: {
                        comment_id:comment_id
                    },
                    success:function(data)
                    {
                        if (data == 'yes') 
                            {
                                $(this).data('id').remove();
                            } 
                            else
                            {
                                alert('somthing wrong please tell the admin')
                            };
                    },
                    error:function()
                    {
                        $('#user_serach').text('Some thing wrong..').css('color','red');
                    }
                });//ajax ends here



    });//delete comment ends here

这是我的控制器:

public function deletecomment()
    {
          $data['video_comment_id'] = $this->input->post('comment_id',TRUE);
         $deletecomment =  $this->mod_videosd->deletecomment($data);
         if ($deletecomment) 
         {
            echo 'yes';
         } 
         else
         {
            echo 'not';
         }

    }

最后这是我的数据库:

public function deletecomment($data)
{
    return $this->db->delete('video_comments',array('video_comment_id'=>$data['video_comment_id']));
}

请帮助我很困惑因为我不是jquery的专家。

1 个答案:

答案 0 :(得分:0)

好的..我认为问题是你在.data() - 函数上使用了remove-function。 .data()只返回元素的值,但不返回元素本身。(https://api.jquery.com/jquery.data/) 我没有尝试过,但也许$(this).remove()应该可行。 如果你想删除整个div,你应该给div一个id。在回调函数中,您必须通过$(#1337)删除div .remove(); (没有.data())