gpt4 book ai didi

javascript - 如何在用户喜欢 MVC 架构中的推文后使用 AJAX 调用显示推文的点赞计数

转载 作者:行者123 更新时间:2023-11-28 04:38:25 25 4
gpt4 key购买 nike

我正在使用 MVC 架构创建 twitter 克隆。我编写了以下 JavaScript 代码来显示类似和不同按钮。

当用户点击“like”按钮时,我将tweetId传递给ajax以使用actions.php更新数据库,

$(".likeTweet").click(function() {

var id = $(this).attr("data-tweetlikeId"); /* Id of tweet*/

$.ajax({
type: "POST",
url: "actions.php?action=likeTweet",
data: "tweetlikeId=" + id,
success: function(result){
if (result == "1") {

$("a[data-tweetlikeId='" + id + "']").html("<p>Unlike</p>"); /* Displays Unlike button and I want to display like count here */


} else if (result == "2") {

$("a[data-tweetlikeId='" + id + "']").html("<p>Like</p>"); /* Displays like button and I want to display like count here */

}
}
})
})

下面的代码来自 actions.php,它检查 user($_SESSION['id') 是否已经喜欢该 tweet(tweetlikeId),如果是,则从数据库中删除该条目并返回值 1。

如果用户之前没有喜欢过推文,那么它将向数据库添加一个条目并返回值 2

if ($_GET['action'] == 'likeTweet') {

$query = "SELECT * FROM tweetLikes WHERE userid = ". mysqli_real_escape_string($link, $_SESSION['id'])." AND tweetid = ". mysqli_real_escape_string($link, $_POST['tweetlikeId'])." LIMIT 1";

$result = mysqli_query($link, $query);

if (mysqli_num_rows($result) > 0) {

$row = mysqli_fetch_assoc($result);

mysqli_query($link, "DELETE FROM tweetLikes WHERE userid = ". mysqli_real_escape_string($link, $_SESSION['id'])." AND tweetid = ". mysqli_real_escape_string($link, $_POST['tweetlikeId'])." LIMIT 1");

echo "1";

} else {

mysqli_query($link, "INSERT INTO tweetLikes (userid, tweetid) VALUES (". mysqli_real_escape_string($link, $_SESSION['id']).", ". mysqli_real_escape_string($link, $_POST['tweetlikeId']).")");

echo "2";
}

$queryCount = "SELECT COUNT(tweetid) AS likes FROM tweetLikes WHERE tweetid = ". mysqli_real_escape_string($link, $_POST['tweetlikeId'])."";

$queryResult = mysqli_query($link, $queryCount);

$rowCount = mysqli_fetch_assoc($queryResult);

$count = $rowCount['likes']; /* Count of likes for a tweet */
}

在 actions.php 中,我还统计了该推文的点赞数。但我想使用 JavaScript 在“喜欢”和“不喜欢”按钮旁边显示该特定推文的点赞数。(In $(".likeTweet").click(function())

有人可以告诉我如何从 actions.php 获取喜欢计数,将其发送到 Ajax 并在 Javascript 中显示在喜欢/不喜欢按钮旁边吗???

最佳答案

您好,您可以通过将数组传递给 json 编码函数来完成此操作。这是更新后的 JavaScript 文件

$(".likeTweet").click(function() {

var id = $(this).attr("data-tweetlikeId"); /* Id of tweet*/

$.ajax({
type: "POST",
url: "actions.php?action=likeTweet",
data: "tweetlikeId=" + id,
dataType: "json",
success: function(result){
if (result.likeDislike == "1") {

// $("a[data-tweetlikeId='" + id + "']").html("<p>Unlike</p>"); /* Displays Unlike button and I want to display like count here */
$("a[data-tweetlikeId='" + id + "']").html(result.likeCount); /* Displays Unlike button and I want to display like count here */


} else if (result.likeDislike == "2") {

// $("a[data-tweetlikeId='" + id + "']").html("<p>Like</p>"); /* Displays like button and I want to display like count here */
$("a[data-tweetlikeId='" + id + "']").html(result.likeCount); /* Displays like button and I want to display like count here */

}
}
})
})

这是更新后的action.php 文件。

if ($_GET['action'] == 'likeTweet') {

$query = "SELECT * FROM tweetLikes WHERE userid = ". mysqli_real_escape_string($link, $_SESSION['id'])." AND tweetid = ". mysqli_real_escape_string($link, $_POST['tweetlikeId'])." LIMIT 1";

$result = mysqli_query($link, $query);

if (mysqli_num_rows($result) > 0) {

$row = mysqli_fetch_assoc($result);

mysqli_query($link, "DELETE FROM tweetLikes WHERE userid = ". mysqli_real_escape_string($link, $_SESSION['id'])." AND tweetid = ". mysqli_real_escape_string($link, $_POST['tweetlikeId'])." LIMIT 1");

$likeDislike = "1";

} else {

mysqli_query($link, "INSERT INTO tweetLikes (userid, tweetid) VALUES (". mysqli_real_escape_string($link, $_SESSION['id']).", ". mysqli_real_escape_string($link, $_POST['tweetlikeId']).")");

$likeDislike = "2";
}

$queryCount = "SELECT COUNT(tweetid) AS likes FROM tweetLikes WHERE tweetid = ". mysqli_real_escape_string($link, $_POST['tweetlikeId'])."";

$queryResult = mysqli_query($link, $queryCount);

$rowCount = mysqli_fetch_assoc($queryResult);

$count = $rowCount['likes']; /* Count of likes for a tweet */

echo json_encode(array("likeDislike" => $likeDislike, "likeCount" => $count));
}

关于javascript - 如何在用户喜欢 MVC 架构中的推文后使用 AJAX 调用显示推文的点赞计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43990811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com