Javascript 类似AJAX的按钮重定向我,而不是执行AJAX调用

Javascript 类似AJAX的按钮重定向我,而不是执行AJAX调用,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我已经有了一个like post系统,但我的问题是每次like之后都会重新加载。我对AJAX还是很陌生,不太了解它是如何工作的,但下面是我正在做的 javascript: $("a.like").click(function() { $.post(base_url + "index.php/userprofile/like_post/" + user + "/" + post, { user : user, post : post }, function(data) {

我已经有了一个like post系统,但我的问题是每次like之后都会重新加载。我对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>
我正在抓取userid和post id并将它们放入我的函数中

型号:

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

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

当我运行它时,它实际上会将我带到localhost/musiclear/而不是跳过它并执行ajax调用。我想它只是链接不正确,或者javascript有问题,但我真的不确定。这一直困扰着我一段时间,所以一些帮助将是伟大的!感谢您使用jquery选择$a.like,这是一个类为like的a元素。但是,根据您的标记,like类附加到like按钮父div,而不是a。因此,我怀疑jquery没有正确匹配元素

您可以通过输入jquery选择器在浏览器控制台中测试这一点

一美元

如果返回了元素,则选择器选择正确。如果您得到一个空集,那么您没有选择任何内容

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


$.like>a Select child a elements of elements with the like class

,这是我最初的问题。我无法完全确定问题所在,但这似乎工作正常。如果再仔细研究一下,您的.click函数可能有错误。如果在这一部分中出现错误,函数将在返回false之前中止,从而导致加载链接并刷新整个页面。检查变量和文件位置。数据在哪里传递到这些变量?我是新来的,大部分时间都在复制ajax的其他代码。我不认为你的文章是针对一个简单的问题而优化的。您不太可能需要一个变量作为您正在调用的脚本的URL。我能看到的唯一需要传递的变量是您用来标识喜欢的对象的任何变量。不应该公布喜欢者的身份,因为这可能是任何人。从PHP会话中获取此信息。这些信息从哪里来取决于你。
    function likePost($post, $user) {
    $data['user_ID'] = $user;
    $data['post_liked'] = $post;

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