php - 我的 ajax 调用得到了正确的响应,但没有做任何事情
问题描述
我正在尝试在 ajax 中制作一个喜欢/不喜欢的按钮。ajax 将我的数据发送到一个单独的文件,该文件保存在数据库中,并且该文件发回{"status":"success","message":"Like has been saved.","data":{"like":"1"}}
我从 chrome 网络响应窗口获得的成功响应。但是$ajax(...)
.done 中的代码不起作用
我已经 console.logged 和 var.dumped 我可能的每一点代码。我的数据正在发送到我的数据库,这应该意味着 SQL 和类似的类是正确的。我也尝试过简单地console.log
“回复”“res”并将其余部分放在评论中,但这又没有给我任何东西
<div>
<a href="#" data-id="<?php echo $post->id ?>" class="like">Like</a>
<a href="#" data-id="<?php echo $post->id ?>" class="dislike" style="display:none;">Dislike</a>
<span class='likes' data-id="<?php echo $post->id ?>"><?php echo $post->getLikes(); ?></span> people like this
</div>
$("a.like, a.dislike").on("click",function(e){
var postId = $(this).data("id");
if($("a.like")){
var type = 1;
}else if($("a.dislike")){
var type = 0;
}
var elLikes = $(this).siblings(".likes");
var likes=elLikes.html();
$.ajax({
method: "POST",
url: "ajax/postlike.php",
data: {postId: postId, type:type},
dataType: "json",
})
.done(function( res ) {
console.log(res);
if(res.status=="succes"){
console.log(res);
if(res.data.like=="1"){
likes++;
elLikes=html(likes);
$("a.like").css("display","none");
$("a.dislike").css("display","inline-block");
} else if(res.data.like=="0"){
likes--;
elLikes=html(likes);
$("a.dislike").css("display","none");
$("a.like").css("display","inline-block");
}
}
});
e.preventDefault();
});
if(!empty($_POST)){
try {
$postId=$_POST['postId'];
$type=htmlspecialchars($_POST['type']);
$userId=$_SESSION['user_id'];
$l = new Like();
$l->setPostId($postId);
$l->setUserId($userId);
$l->setType($type);
$l->save();
$res = [
"status" => "success",
"message" => "Like has been saved.",
"data" =>[
"like" => $type
]
];
}catch (trowable $t) {
$res = [
'status' => 'failed',
'message' => $t->getMessage()
];
}
echo json_encode($res);
var_dump($res);
}
我期望发生的事情是 Ajax 将 JSON 数据发送到 php 代码,然后将其放入数据库中,这样就可以了。然后给Ajax一个成功的响应,也可以。然后,Ajax 将关闭喜欢/不喜欢按钮,同时从跨度“喜欢”中添加或取 1 个喜欢。然而它完全没有任何作用
我几乎 100% 确定问题是我忽略的一些愚蠢的问题,但我真的找不到。
解决方案
在线“成功”中的错字:if(res.status=="succes"){
推荐阅读
- python - 如何在 google colab 中读取 .arff 文件?
- node.js - 当我尝试安装@angular-cli 时,我收到以下警告
- javascript - 在 Oracle Apex 中选择具有自动完成功能的文本字段后,文本字段未对齐
- apache-flink - flink 事件将发送到作业管理器,但不会发送到集群中的任务管理器
- bash - 用于表达式 var=${`expression`:-$var} 的 shell 中的空合并运算符
- python - 如何编写一个递归函数来计算对一组数字中的值求和的方法?
- arrays - 使用具有下标的对象重载流插入和提取运算符
- c - 为文件的 for 循环中的数组计算 BMI 平均值
- dart - 在 dart 中对各种运行时类型列表中的所有数字求和的最佳方法是什么?
- java - excel 文件 3350032000 的值被读取为 3.350032E9 使用 Java POI 读取 excel 文件