HTML часть (кнопка)
html
Copy
<button id="addFriendBtn" class="friend-button">Добавить в друзья</button>
Run HTML
JavaScript (AJAX обработка)
javascript
Copy
document.getElementById('addFriendBtn').addEventListener('click', function() {
// Создаем объект XMLHttpRequest
var xhr = new XMLHttpRequest();
// Настраиваем запрос
xhr.open ('POST', 'add_friend.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
// Обработка ответа от сервера
xhr.onload = function() {
if (xhr.status === 200) {
// Ответ от сервера
var response = JSON.parse(xhr.responseText);
if (response.success) {
// Действия при успешном добавлении
alert('Пользователь добавлен в друзья!');
// Можно изменить текст кнопки или ее стиль
document.getElementById('addFriendBtn').textContent = 'Запрос отправлен';
document.getElementById('addFriendBtn').disabled = true;
} else {
// Обработка ошибки
alert('Ошибка: ' + response.message);
}
} else {
alert('Произошла ошибка при запросе');
}
};
// Отправляем запрос
xhr.send('action=add_friend');
});
PHP часть (обработка на сервере - add_friend.php)
php
Copy
<?php
header('Content-Type: application/json');
// Здесь должна быть проверка авторизации пользователя
// session_start();
// if (!isset($_SESSION['user_id'])) {
// echo json_encode(['success' => false, 'message' => 'Необходимо авторизоваться']);
// exit;
// }
// Проверяем, что запрос пришел методом POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Здесь можно добавить дополнительную проверку данных
// Например, проверку CSRF-токена
// Имитация добавления в друзья
$success = true; // Здесь реальная логика добавления
if ($success) {
echo json_encode(['success' => true, 'message' => 'Друг успешно добавлен']);
} else {
echo json_encode(['success' => false, 'message' => 'Не удалось добавить в друзья']);
}
} else {
echo json_encode(['success' => false, 'message' => 'Некорректный метод запроса']);
}
?>