$ .post数据成功返回数据失败,但成功了?

时间:2015-05-17 02:04:47

标签: javascript php jquery

我在"喜欢" 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() ?> 

提交用户数据并在数据库中将类似的数量增加一个。

我遇到的问题是,当我不应该这样做时,我会收到一个警告说它已成功,并且在我刷新页面之前它不会更新类似的计数。我应该收到一条说“有效”的警报!&#39;得到这样的回报。

编辑**

现在它正在回归成功&#34;成功&#34;当我点击like按钮时,从警报中的like_add.php。确切地说:

&#39;

成功&#39;

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';
  }
}?>

1 个答案:

答案 0 :(得分:0)

如果您在<?php之前或结束?>标记之后有空格(如硬回车),那么您将获得超过&#34;成功&#34;正如你在警告' success'时看到的那样。找到这个空格并将其删除。确保您的打开PHP标记在脚本页面的左上角是齐平的。

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