我在一个"喜欢"的函数在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'
;