2014-10-16 26 views
0

我有一个喜欢邮政系统已经但我的问题是,它重新加载后,每个像。我对AJAX还很陌生,不太了解它是如何工作的,但这是我正在做的。AJAX - 像按钮重定向我,而不是执行Ajax调用

的javascript:

$("a.like").click(function() { 


    $.post(base_url + "index.php/userprofile/like_post/" + user + "/" + post, { user : user, post : post }, function(data) { 

     alert('liked'); 

    }, "json"); 

    return false; 

}); 

这应该点击按钮来调用。我可以告诉我这不是被称为,因为我没有得到警报。

观点:

<div class='like'> 
    <?php echo anchor('#', 'like', array('id' => 'like')); ?> 
</div> 

控制器:

public function like_post() { 
    $this->load->model('model_users'); 
    $this->load->model('model_posts'); 

    $user = $this->model_users->getUserID($this->session->userdata('username')); 
    $post = $this->model_users->parseURL($_SERVER['REQUEST_URI'], 2); 

    $this->model_posts->likePost($post, $user); 

} 

我抓住了用户名和帖子的ID,并把他们变成我的功能

型号:

function likePost($post, $user) { 
    $data['user_ID'] = $user; 
    $data['post_liked'] = $post; 

    $insert = $this->db->insert('user_post_likes', $data); 
    return $insert; 
} 

当我跑t他实际上把我带到了localhost/musiclear /#,而不是跳过这个,并做了ajax调用。我认为它只是没有正确链接或可能是错误的JavaScript,但我真的不知道。这一直困扰我一段时间,所以一些帮助将是伟大的!谢谢

回答

0

您正在使用jQuery来选择$("a.like"),这是一个类like的元素。但是,根据您的标记,like类附加到您的按钮父按钮div,而不是a。因此,我怀疑你的jQuery不正确地匹配元素。

您可以通过输入jquery选择器在浏览器控制台中对其进行测试。

$("a.like")

如果返回你的元素,那么你的选择是否正确选择。如果你得到一个空集,你没有选择任何东西。

根据您的标记,我会建议使用以下选择:

$(".like > a")(选择孩子与like类元素的a元素)

+0

它仍然是我重定向到http://本地主机/ musiclear /index.php/# – Divergent 2014-10-16 23:36:14

+0

这是我最初的问题 – Divergent 2014-10-16 23:37:33

+0

我不能完全确定问题,但是[简化重建](http://jsfiddle.net/zu495136/3/)似乎工作正常。 – msg45f 2014-10-16 23:45:50