我正在尝试使用Jquery AJAX和PHP(codeigniter)与Datamapper删除论坛评论 但出于某种原因,无论我做什么,当我点击删除时都没有任何反应。
如果有人能看到问题那么好。
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();
}
答案 0 :(得分: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
});
当然没有任何事情发生!
答案 1 :(得分:0)
在调用jQuery时,您需要确保使用$('button.delete)
选择的元素实际存在。将您的Javascript移动到<body>
的底部,或者将javascript包装在domReady函数中:
$(document).ready(function(){
$(button.ready)...// do your initialisation here.
});
答案 2 :(得分:0)
除了已经注释掉了您希望它执行的实际代码之外,您还没有使用类“comment”为li标记定义id属性。
因此,在这种情况下var comment = $(this).parent('.comment').attr('id');
将不返回任何内容。
li标签必须为<li class="comment" id=(insert_comment_id_here)>
答案 3 :(得分:0)
在你的jquery中尝试这个
$(document).on('click', 'button.delete', function(event) {
console.log('derp');
// var comment = $(this).parent('.comment').attr('id');
// $.post('actions/delete_comment/'+comment);
});
当它开始进入事件处理程序时,和ofcourse取消注释代码..