2013-11-16 1 views
1

Я пытаюсь выполнить удаление комментария форума, используя JQuery AJAX и PHP (codeigniter) с Datamapper , но по какой-то причине независимо от того, что я делаю, ничего не происходит, когда я нажимаю delete.Комментарий удалить не работает

Если кто-нибудь может увидеть проблему, которая была бы замечательной.

Jquery =

$('button.delete').on('click', function(event) { 

    console.log('derp'); 
    // var comment = $(this).parent('.comment').attr('id'); 

    // $.post('actions/delete_comment/'+comment); 

}); 

пост форума PHP =

<li class="comment" id="<?=$comment->id ?>"> 
    <img src="assets/img/avatars/<?=$comment->user.'.jpg' ?>"> 
    <p class="username"><?=$comment->user ?></p><p class="commenttime"><?=$comment->date ?></p><br> 
    <p><?=$comment->contents ?></p> 
    <button class="delete">Delete</button> 
</li> 

удалить PHP =

public function delete_comment($id){ 
    $comments = new Forum_comment; 
    $comments->get_where(array('id' => $id)); 
    $comments->delete(); 
} 
+1

ваш класс .comment элемент не имеет атрибута id –

ответ

0

попробовать это в JQuery

$(document).on('click', 'button.delete', function(event) { 

    console.log('derp'); 
    // var comment = $(this).parent('.comment').attr('id'); 

    // $.post('actions/delete_comment/'+comment); 

}); 

и, конечно, раскомментировать код, пожалуйста, когда она начала получать в обработчик события ..

+1

благодаря этому – SamHansard

0

Вы закомментировал все фактического кода в случае JQuery, за исключением console.log()

$('button.delete').on('click', function(event) { 

    console.log('derp'); 
    var comment = $(this).parent('.comment').attr('id'); // Remove leading slashes 

    $.post('actions/delete_comment/'+comment); // Remove leading slashes 

}); 

Конечно, ничего не происходит!

0

Вы должны убедиться, что элементы, выбранные вами с помощью $('button.delete), фактически существуют при вызове jQuery. Либо переместить Javascript в нижней части вашего <body>, или обернуть JavaScript в domReady функции:

$ (документ) .ready (функция() {

$(button.ready)...// do your initialisation here. 

});

0

Помимо прокомментированного фактического кода, который делает то, что вы хотите, вы также не определили атрибут id для тега li с комментарием класса.

Так что в этом случае var comment = $(this).parent('.comment').attr('id'); ничего не вернет.

литиево тег должен быть <li class="comment" id=(insert_comment_id_here)>