2015-06-22 225 views
1

我有這樣的jQuery的AJAX喜歡不喜歡劇本喜歡不喜歡功能AJAX

<script> 
$(function(){ 
    var PostID = <?php echo $PostID; ?>; 

    $('.like-btn').click(function(){ 
     $('.dislike-btn').removeClass('dislike-h');  
     $(this).addClass('like-h'); 
     $.ajax({ 
      type:"POST", 
      url:"rate.php", 
      data:'Action=LIKE&PostID='+PostID, 
      success: function(){ 
      } 
     }); 
    }); 
    $('.dislike-btn').click(function(){ 
     $('.like-btn').removeClass('like-h'); 
     $(this).addClass('dislike-h'); 
     $.ajax({ 
      type:"POST", 
      url:"rate.php", 
      data:'Action=DISLIKE&PostID='+PostID, 
      success: function(){ 
      } 
     }); 
    }); 
}); 
</script> 

現在我想這個腳本轉換爲多後喜歡不喜歡系統。 我該怎麼做? HTML看起來像這樣:

<a href="#" onclick="RateSystem(LIKE, 1)">Like</a> 
<a href="#" onclick="RateSystem(DISLIKE, 1)">Dislike</a> 

喜歡/不喜歡將採取行動,1將是帖子的ID喜歡/不喜歡。由於

+0

這看起來OK。 「多郵報」是什麼意思? – pid

+0

這個腳本每頁有一篇文章,但我想在一頁上做更多文章。對於這個我需要的功能,但我總是與JavaScript,jQery noob ... –

回答

2

你可以做成這樣的東西。每個帖子每個div都帶有postId和兩個控件(喜歡和不喜歡按鈕)。當你點擊 - 功能將獲得帖子ID併發送郵件到服務器。你必須檢查函數的ajax部分。

$(function() { 
    $('.like').click(function() { likeFunction(this); }); 
    $('.dislike').click(function() { dislikeFunction(this);}); 
}); 


function likeFunction(caller) { 
    var postId = caller.parentElement.getAttribute('postid'); 
    $.ajax({ 
     type: "POST", 
     url: "rate.php", 
     data: 'Action=LIKE&PostID=' + postId, 
     success: function() {} 
    }); 
} 
function dislikeFunction(caller) { 
    var postId = caller.parentElement.getAttribute('postid'); 
    $.ajax({ 
     type: "POST", 
     url: "rate.php", 
     data: 'Action=DISLIKE&PostID=' + postId, 
     success: function() {} 
    }); 
} 
<div class="post" postid="10"> 
    <input type="button" class='like' value="LikeButton" /> </input> 
    <input type="button" class='dislike' value="DislikeButton"> </input> 
</div> 

如果你有問題或需要更多的幫助,你可以問我:)

1

如果你想每頁超過一個職位,你可以這樣做:

function send(action, id) 
{ 
    var opposite; 

    opposite = action === 'like' ? 'dislike' : 'like'; 

    $('#' + opposite + '-' + id).removeClass(opposite + '-h'); 
    $('#' + action + '-' + id).addClass(action + '-h'); 

    $.ajax({ 
     type:"POST", 
     url:"rate.php", 
     data:'Action=' + action + '&PostID=' + id, 
     success: function(){ 
     } 
    }); 
} 

現在,你只需要正確安裝的處理程序($PostID必須在一個循環中每一個崗位是不同的):

<a href="#" 
    id="like-<?php echo $PostID; ?>" 
    onclick="send('like', <?php echo $PostID; ?>)">Like</a> 
<a href="#" 
    id="disloke-"<?php echo $PostID; ?>" 
    onclick="send('dislike', <?php echo $PostID; ?>)">Dislike</a> 

這只是一個代碼的佈局,可能有缺陷。它與我們開始的地方非常不同,所以只有您可以實際測試它並查看需要改進的地方。