我正在开发一个带有PDO,PHP和AJAX的类似系统。
但是,它不起作用。
这是PHP代码。
$get_likes_sql = "SELECT * FROM `likes` WHERE post_id=:post_id AND liker_id=:my_id";
$get_likes = $db->prepare($get_likes_sql);
$get_likes->execute(array(
":post_id" => $post_id,
":my_id" => $my_id
));
$likes_numrows = $get_likes->rowCount();
if ($likes_numrows == 0) {
echo "<a class='like-link' id='$post_id' title='Like'>Like</a>";
} else {
echo "<a class='like-link' id='$post_id' title='Unlike'>Unlike</a>";
}
下面是 AJAX 脚本。
$(document).ready(function(){
$(document).on('click', '.like-link', function(){
if($(this).attr('title')=='Like'){
$.post('ajax.like.php',{pid:$(this).attr('id'),action:'like'},function(){
$(this).text('Unlike');
$(this).attr('title','Unlike');
});
}else{
if($(this).attr('title')=='Unlike'){
$.post('ajax.like.php',{pid:$(this).attr('id'),action:'unlike'},function(){
$(this).text('Like');
$(this).attr('title','Like');
});
}
}
});
});
问题是单击类似链接后没有任何反应,也没有打开不同链接。
这就是调试的用武之地。首先,让我们看看 AJAX 调用是否成功。放入console.log('foo');
语句,使用不同的字符串来跟踪JavaScript代码的作用。如果正在进行 AJAX 调用,则也应该能够在调试器中看到它。
之后,您应该能够看到进入PHP脚本的结果。您可以转储顶部var_dump($_POST);exit;
的变量。
还应该有一些代码将$_POST
变量链接到$post_id
和$my_id
。
由于这不是完整的代码示例,因此我只能为您提供这么多帮助。如果您设法调试了它,请告诉我们。否则,完整的代码示例会很高兴我们为您提供更多帮助。
使用 Console.log 函数查看代码的哪个部分被执行,哪个部分没有执行