/
Evil331
/
Apteka
Обзор
Документация
Войти
/
Evil331
/
Apteka
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
product.php
105 строк
4 KB
Evil6766
Add files via upload
31 май 2025, 17:06
Не верифицирован
31 май 2025, 17:06
667fe25
Код
Авторство
О чём код?
<?php include 'header.php'; require_once 'db_connect.php'; // Подключаем файл конфигурации для базы данных // Проверяем, передан ли ID продукта if (!isset($_GET['id']) || !is_numeric($_GET['id'])) { header('Location: catalog.php'); exit; } $product_id = (int)$_GET['id']; // Получаем данные о продукте из базы данных try { $stmt = $pdo->prepare("SELECT * FROM products WHERE id = ?"); $stmt->execute([$product_id]); $product = $stmt->fetch(PDO::FETCH_ASSOC); if (!$product) { header('Location: catalog.php'); exit; } } catch (PDOException $e) { die("Ошибка при получении данных о продукте: " . $e->getMessage()); } ?> <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title><?php echo htmlspecialchars($product['name']); ?> - Интернет-аптека</title> <link rel="stylesheet" href="style.css"> </head> <body> <header> <h1>Интернет-аптека</h1> <nav> <a href="catalog.php">Каталог</a> <?php if (isset($_SESSION['user_id'])): ?> <a href="profile.php">Профиль</a> <a href="logout.php">Выйти</a> <?php else: ?> <a href="login.php">Войти</a> <a href="register.php">Регистрация</a> <?php endif; ?> </nav> </header> <main> <div class="product-details"> <h2><?php echo htmlspecialchars($product['name']); ?></h2> <img src="<?php echo htmlspecialchars($product['image']); ?>" alt="<?php echo htmlspecialchars($product['name']); ?>" style="max-width: 300px;"> <p><?php echo htmlspecialchars($product['description']); ?></p> <div class="price">Цена: <?php echo number_format($product['price'], 2); ?> ₽</div> <!-- Поле для ввода количества --> <input type="number" id="quantity" value="1" min="1" style="width: 50px;"> <button class="add-to-cart" data-id="<?php echo $product['id']; ?>" data-name="<?php echo htmlspecialchars($product['name']); ?>" data-price="<?php echo $product['price']; ?>">Добавить в корзину</button> <a href="catalog.php" class="back-link">Вернуться к каталогу</a> </div> </main> <footer> <p>© <?php echo date('Y'); ?> Интернет-аптека. Все права защищены.</p> </footer> <script> function addToCart(productId, quantity) { fetch('add_to_cart.php', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ product_id: productId, quantity: quantity }) }) .then(response => response.json()) .then(data => { if (data.success) { alert('Товар добавлен в корзину!'); } else { alert('Ошибка: ' + (data.message || 'Неизвестная ошибка')); } }) .catch(error => { console.error('Ошибка fetch:', error); alert('Ошибка при добавлении товара в корзину.'); }); } // Добавляем обработчик событий для кнопки с классом add-to-cart document.addEventListener('DOMContentLoaded', function() { const addToCartButtons = document.querySelectorAll('.add-to-cart'); addToCartButtons.forEach(button => { button.addEventListener('click', function() { const productId = this.getAttribute('data-id'); const quantity = document.getElementById('quantity').value; addToCart(productId, quantity); }); }); }); </script> </body> </html>