Hay numerosos problemas aquí. Por un lado, como dijo @Mark, debe comprender que al enviar solicitudes ajax a PHP, está enviando cadenas. Además, en su JS, está vinculando una función de clic al .heart.canal, pero luego la función cambia todos los elementos con esa clase en lugar del elemento real en el que se hizo clic. Por último, una vez que envíe la información correcta a PHP, debe imprimir sus resultados para verlos en ajax.
Prueba lo siguiente:
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;