Hier gibt es zahlreiche Probleme. Zum einen müssen Sie, wie @Mark sagte, verstehen, dass Sie beim Senden von Ajax-Anforderungen an PHP Zeichenfolgen senden. Außerdem binden Sie in Ihrem JS eine Klickfunktion an den .heart.canal, aber dann ändert die Funktion alle Elemente mit dieser Klasse und nicht das tatsächlich angeklickte Element. Schließlich, sobald Sie die richtigen Informationen an PHP gesendet haben, müssen Sie Ihre Ergebnisse drucken, um sie in Ajax zu sehen.
Versuchen Sie Folgendes:
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;