Как вывести информацию из базы данных в модальное окно?
Есть база данных, из которой на сайт выводятся все элементы. При нажатии на любой из элементов открывается модальное окно с подробной информацией. Как сделать так, чтобы информация в модальном окне менялась в зависимости от того на какой элемент я нажал?
Это код вывода всех элементов из базы:
while ($row = mysqli_fetch_array($search_result)) { ?> <div id="<?= $row[0] ?>" class="book"> <div id="open_popup" class="book_img"> <img src="img/<?= $row[3] ?>" alt=""> <div class="rating"><?= $row[4] ?></div> </div> <div class="name"><?= $row[1] ?></div> <div class="author"><?= $row[2] ?></div> </div> <?php } |
while ($row = mysqli_fetch_array($search_result)) { ?> <div id="<?= $row[0] ?>" class="book"> <div id="open_popup" class="book_img"> <img src="img/<?= $row[3] ?>" alt=""> <div class="rating"><?= $row[4] ?></div> </div> <div class="name"><?= $row[1] ?></div> <div class="author"><?= $row[2] ?></div> </div> <?php }
Код открытия и закрытия модального окна:
var elements = document.querySelectorAll(".book_img"); for (var i = 0; i < elements.length; i++) { elements[i].onclick = function(){ document.getElementById("popup").classList.add("open"); } } document.getElementById("close_popup").onclick = function(){ document.getElementById("popup").classList.remove("open"); } |
var elements = document.querySelectorAll(".book_img"); for (var i = 0; i < elements.length; i++) { elements[i].onclick = function(){ document.getElementById("popup").classList.add("open"); } } document.getElementById("close_popup").onclick = function(){ document.getElementById("popup").classList.remove("open"); }
Код для модального окна
<div class="popup" id="popup"> <div class="popup_window" id="popup_window"> </div> </div> |
<div class="popup" id="popup"> <div class="popup_window" id="popup_window"> </div> </div>
Дополнительно:
Не надо ставить как можно больше тэгов. Лучше оставить один, но конкретный, с которым проблема.
См.п.3.1 Регламента.
Ответы:
Дай каждому elements[i] html-аттрибут типа data-id="444", бери это значение в обработчике события и используй в AJAX-запросе для поиска соответствующего блока с информацией.
Похоже курсы Евгения Попова живы) На самом деле посмотрите в сторону MVC паттерна, так Вы сможете отделить бизнес логику от представления, тем самым в модальное окно можно будет проще пробросить необходимые данные.
Дальше можно идти на разделения фронта и бэка - React JS + Backend (PHP, GO и т.п)
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для вывода информации из базы данных в модальное окно на веб-странице можно использовать различные технологии, но одним из наиболее популярных способов является использование AJAX запросов с помощью JavaScript.
Прежде всего, необходимо создать модальное окно на HTML странице. Например, модальное окно может быть представлено в виде
Затем, вам потребуется написать скрипт на JavaScript, который будет обрабатывать событие открытия модального окна и отправлять AJAX запрос на сервер для получения данных из базы данных.
Пример кода на JavaScript:
// Функция для отправки AJAX запроса function fetchDataFromDatabase() { var xhr = new XMLHttpRequest(); xhr.open('GET', 'url_to_your_api_endpoint', true); xhr.onload = function() { if (xhr.status >= 200 && xhr.status < 300) { var data = JSON.parse(xhr.responseText); // Здесь можно обновить содержимое модального окна с полученными данными } else { console.error('Request failed with status: ' + xhr.status); } }; xhr.send(); }
Замените 'url_to_your_api_endpoint' на URL вашего API, который будет обрабатывать AJAX запрос и возвращать данные из базы данных.
На стороне сервера, вам нужно будет создать API, который будет обрабатывать запрос и возвращать данные. Например, если вы используете PHP, то ваш API может выглядеть примерно так:
query('SELECT * FROM table'); $data = $stmt->fetchAll(PDO::FETCH_ASSOC); header('Content-Type: application/json'); echo json_encode($data); ?>
После того как данные будут получены с сервера, вы можете обновить содержимое модального окна с помощью JavaScript, чтобы отобразить полученные данные.
Таким образом, вы сможете вывести информацию из базы данных в модальное окно с использованием AJAX запросов и JavaScript.