gpt4 book ai didi

php - 将 PHP 文件中的 bool 值返回到 AJAX 文件 - 关注按钮

转载 作者:行者123 更新时间:2023-11-29 12:01:13 25 4
gpt4 key购买 nike

我正在创建一个关注按钮,或多或少类似于 Twitter 按钮。

单击该按钮,即可关注该用户。

再次点击,即可取消关注该用户。

我已经完成了这段代码

HTML

<div data-following="false" class='heart canal'><i class='fa fa-heart awesome'></i></div>

AJAX

$(document).ready(function() {
$(".heart.canal").click(function() {
if($(".heart").attr("data-following") == '0'){
$(".heart").attr('data-following', '1');
} else if($(".heart").attr("data-following") == '1'){
$(".heart").attr('data-following', '0');
}

var usuario = $(".left h4").attr("data-id");
var seguidor = $("#user_account_info .profile_ball").attr("data-id");
var seguir = $(".heart").attr("data-following");

$.ajax({
type: "POST",
url: "./include/php/follow.php",
data: { user: usuario, follower: seguidor, follow: seguir },
success: function(response) {
if(response == '0'){
$(".heart").addClass("like");
} else if(response == '1'){
$(".heart").removeClass("like");
}
}
});
return false;
});
});

PHP

<?php
$dsn = "mysql:host=localhost;dbname=tapehd;charset=utf8";
$usuario = "root";
$contraseña = "";

$conexion = new PDO($dsn, $usuario, $contraseña);
$resultado = null;

$sql = "";
$user = $_POST["user"];
$seguidor = $_POST["follower"];
$follow = $_POST["follow"];

if($follow == '0'){
$sql = "INSERT INTO seguidores(id_canal, id_seguidor) VALUES('$user', '$seguidor')";
} else if($follow == '1'){
$sql = "DELETE FROM seguidores WHERE id_canal = '$user' AND id_seguidor= '$seguidor'";
}

if($conexion){ $resultado = $conexion->query($sql); }

return $follow;
?>

问题是,每次单击按钮时,我只在数据库中插入数据。我的意思是,我只创建以下内容。当我单击两次时,它不会删除以下内容。

是否有办法在data-following = true时插入数据并在data-following = false时删除数据?

已更新

我已经更改了 2 个字符串 0 和 1 的 bool 值 false 和 true。但无论如何它都不起作用。

最佳答案

这里有很多问题。其一,就像 @Mark 所说,您需要了解,当向 PHP 发送 ajax 请求时,您正在发送字符串。另外,在 JS 中,您将单击函数绑定(bind)到 .heart.canal,但该函数随后更改了该类的所有元素,而不是实际单击的元素。最后,一旦您将正确的信息发送到 PHP,您需要打印结果以便在 ajax 中查看它。

尝试以下操作:

JS:

$(document).ready(function () {
$(".heart.canal").click(function () {
var $heart = $(this);
if ($heart.data("following")) {
$heart.data("following", false)
} else {
$heart.data("following", true);
}

var usuario = $(".left").find("h4").data("id");
var seguidor = $("#user_account_info").find(".profile_ball").data("id");

$.ajax({
type: "POST",
url: "follow.php",
data: {user: usuario, follower: seguidor, follow: $heart.data("following")},
success: function (result) {
if (result) {
console.log("true");
} else {
console.log("false");
}
}
});
return false;

});

});

PHP:

$user = (int)$_POST["user"];
$seguidor = (int)$_POST["follower"];
$follow = ($_POST["follow"] === 'true') ? true : false;

if ($follow) {
// insert
} else {
// delete
}

print $follow;

关于php - 将 PHP 文件中的 bool 值返回到 AJAX 文件 - 关注按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32338755/

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