2014-10-16 27 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