Er zijn hier tal van problemen. Ten eerste, zoals @Mark zei, moet je begrijpen dat wanneer je ajax-verzoeken naar PHP verzendt, je strings verzendt. Ook bind je in je JS een klikfunctie aan het .heart.canal, maar dan verandert de functie alle elementen met die klasse in plaats van het daadwerkelijk aangeklikte element. Ten slotte, als je de juiste informatie naar PHP hebt gestuurd, moet je je resultaten afdrukken om deze in ajax te kunnen zien.
Probeer het volgende:
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;