美元.Post数据成功返回数据不成功,但成功


$.post data success returning data unsuccessfully, but successfully?

我在一个"喜欢"的函数在php和jquery工作,我在它的最后一部分。当我点击:

<a href="#" class = "like" onclick="like_add(<?php echo $post_id ?>);">like</a>
<span id="post_<?php echo $post_id ?>_likes">
    <?php echo $post_likes; ?>
</span>

add_like.php中的函数:

<?php add_like() ?> 

提交用户数据,并将数据库中的类似计数加1。

我遇到的问题是,我得到一个警告,说成功的时候,它不应该是,它不更新计数,直到我刷新页面。我应该收到"有效!"’并获得相同的计数。

编辑* *

现在,当我点击like按钮时,它会返回警报中like_add.php的"success"。确切地说:

成功"

like.js

function like_add(post_id){
 $.post('../public/like_add.php', {post_id:post_id}, function(data){
    if (data == 'success') {
        like_get(post_id);
        alert("works!");
    }else{
        alert("'" + data + "'");
    }
 });
}
function like_get(post_id){
 $.post('../public/like_get.php', {post_id:post_id}, function(data){
     $('#post_'+post_id+'_likes').text(data);
 });    
}

add_like.php

<?php 
if(isset($_POST['post_id'], $_SESSION['user_id']) 
&& post_exists($_POST['post_id'])){
$post_id = $_POST['post_id'];
$user_id = $_SESSION['user_id'];
  if (previously_liked($post_id, $user_id) === true) {
    echo "You've already liked this";
  } else{
    add_like($post_id, $user_id);
    echo 'success';
  }
}?>

如果您在<?php之前或关闭?>标记之后有空白(如硬返回),您将返回比您在警告' success'时看到的"成功"更多。找到这个空格并删除它。确保你的开始PHP标签与脚本页面的左上角齐平。


正如评论者所提到的,一个简单的修复方法是修剪data变量,使' success'成为'success';