Я создаю следующую систему. Если пользователь нажимает кнопку «Follow», запускается функция AJAX. Функция ajax отправляет данные в файл actions.php, и этот файл проверяет, есть ли данные в базе данных. На основе этой информации код вставляет подписчик или удаляет его из базы данных. Это отлично работает! Но, например, если один пользователь начинает следовать за другим человеком, а затем обновляет страницу, кнопки html снова изменяются, чтобы следовать.
Я пытался сделать результат в PHP, но это не сработало
Ajax:
$(".toggleFollow").click(function() {
var id = $(this).attr("data-userId");
$.ajax({
type: "POST",
url: "actions.php?action=toggleFollow",
data: "userId=" + id,
success: function(result) {
if (result == "1") {
$("button[data-userId='" + id + "']").html('<span class="icon icon-add-user"></span> Follow');
} else if (result == "2") {
$("button[data-userId='" + id + "']").html('<span class="icon icon-remove-user"></span> Unfollow');
}
}
})
})
actions.php:
session_start();
require 'dbh.inc.php';
$id = $_SESSION['userId'];
$userId = $_POST['userId'];
if ($_GET['action'] == 'toggleFollow') {
$query = "SELECT * FROM isFollowing WHERE follower = ". mysqli_real_escape_string($conn, $_SESSION['userId'])." AND isFollowing = ". mysqli_real_escape_string($conn, $_POST['userId'])." LIMIT 1";
$result = mysqli_query($conn, $query);
if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result);
mysqli_query($conn, "DELETE FROM isFollowing WHERE id = ". mysqli_real_escape_string($conn, $row['id'])." LIMIT 1");
echo "1";
} else {
mysqli_query($conn, "INSERT INTO isFollowing (follower, isFollowing) VALUES (". mysqli_real_escape_string($conn, $_SESSION['userId']).", ". mysqli_real_escape_string($conn, $_POST['userId']).")");
echo "2";
}
}
Я ожидаю, что кнопка "Подписаться / Отписаться" не изменится после обновления!
PS Это мой первый вопрос по stackoverflow!