2014-09-21 221 views
0

有人可以告诉我为什么我的按钮不工作?我在我的博客上附加了一个类似按钮,并使用Ajax将每个相似的计数器发送到mySQL数据库中。但是,显然这不起作用。这里是我的jQuery函数:jquery阿贾克斯按钮

$(document).ready(fuction() { 


    function likefunction(catch_blog_id) { 

    var count = 1; 
    var catch_id = catch_blog_id; 
    var status = $('#likelink').html(); 
    var vardata = 'count' + count + '&catch_id' + catch_id; 


    if (status == "Like") { 
    $.ajax({ 

     type: "POST", 
     url: 'like.php', 
     data: vardata, 
     success: function() {$('#likelink').html("Unlike");} 

    }) 

    } else { 

    $.ajax({ 

     type: "POST", 
     url: 'unlike.php', 
     data: vardata, 
     success: function() {$('#likelink').html("Like");} 

    }) 
    } 
    } 
    }) 
</script> 

这里是.php文件:一个用于类似功能和其他的不同功能==

like: 

<?php 

include_once('connectserver.php'); 

$catch_blog_id = $_POST['catch_id']; 
$catch_count = $_POST['count']; 


$query_blog = mysql_query("SELECT `likes` FROM `posts` WHERE `id` = '$catch_blog_id'"); 

while($get_rows = mysql_fetch_assoc($query_blog)) { 


$likes = $get_rows['likes']; 
$likes = (int)$likes; 
$likes++; 

mysql_query("UPDATE `posts` SET `likes` = '$likes' WHERE `id` = '$catch_blog_id'"); 

} 







    ?> 


    unlike: 



    <?php 

    include_once('connectserver.php'); 

    $catch_blog_id = $_POST['catch_id']; 
     $catch_count = $_POST['count']; 


     $query_blog = mysql_query("SELECT `likes` FROM `posts` WHERE `id` = '$catch_blog_id'"); 

    while($get_rows = mysql_fetch_assoc($query_blog)) { 


    $likes = $get_rows['likes']; 
    $likes = (int)$likes; 
    $likes--; 

     mysql_query("UPDATE `posts` SET `likes` = '$likes' WHERE `id` = '$catch_blog_id'"); 

     } 







    ?> 

这里的一部分用于存储类似按钮的html文件:

echo“
赞评论”;

+0

您的javascript代码中的计数总是等于1(在变量中'vardata')。此外,您需要在$ _POST数据中的变量和值之间有相同的符号。 – Sablefoste 2014-09-21 23:57:44

+0

计数是多余的。我shud已删除该部分...忽略计数..我将后端sql数据设置为0,并通过从查询中提出它来增加它 – 2014-09-22 00:05:58

回答

0

这就像在服务器端看不到vardata,为什么注意似乎不工作。尝试使用

vardata = { 
      count: count, 
      catch_id: catch_id 
} 


$.post(like.php, vardata, function(res){ 
      $('#likelink').html("Unlike"); 
}); 
+0

什么是回调,我该如何使用它?它与我使用的成功功能相似吗? – 2014-09-22 01:19:48

+0

@JOSEPHALCATRAZ回调只是成功的功能,所以你可以使用它像功能(res){$('#likelink')。html(“Like”);} – codemonk 2014-09-22 07:25:02

+0

它不起作用... – 2014-09-22 10:39:42

0

使用此JavaScript代码:

<script type="text/javascript"> 

    function likefunction(catch_blog_id) { 
     var count = 1; 
     var catch_id = catch_blog_id; 
     var status = $('#likelink').html(); 
     var vardata = 'count=' + count + '&catch_id=' + catch_id;  

     if (status == "Like") { 
      $.ajax({    
       type: "POST", 
       url: 'like.php', 
       data: vardata, 
       success: function() {$('#likelink').html("Unlike");}    
      }); 

     } else { 

      $.ajax({    
       type: "POST", 
       url: 'unlike.php', 
       data: vardata, 
       success: function() {$('#likelink').html("Like");}   
      }); 
     } 
    } 
</script> 

这PHP代码like.php:

<?php 
include_once('connectserver.php'); 

$catch_blog_id = $_POST['catch_id']; 

mysql_query("UPDATE `posts` SET likes = likes + 1 WHERE `id` = '$catch_blog_id'"); 

?> 

而对于unlike.php这个PHP代码:

<?php 
include_once('connectserver.php'); 

$catch_blog_id = $_POST['catch_id']; 

mysql_query("UPDATE `posts` SET likes = likes - 1 WHERE `id` = '$catch_blog_id'"); 

?> 
+0

在这工作在'posts'中'like'字段的数据类型应该是'INTEGER(或INT),SMALLINT,TINYINT,MEDIUMINT和BIGINT'。 – 2014-09-22 11:14:33