Existem inúmeros problemas aqui. Por um lado, como o @Mark disse, você precisa entender que, ao enviar solicitações de ajax para PHP, você está enviando strings. Além disso, em seu JS, você está vinculando uma função de clique ao .heart.canal, mas a função altera todos os elementos com essa classe em vez do elemento clicado real. Por fim, depois de enviar as informações corretas para o PHP, você precisa imprimir seus resultados para vê-los em ajax.
Tente o seguinte:
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;