Как передать значение переменной JS в PHP SQL?
есть ссылка, открывающая модальное окно
<a id="updatedetail" href="" data-id="1" data-toggle="modal" data-target="#upDetail">Изменить</a>
есть JS-код, принимающий data-id в переменную
document.querySelectorAll('#updatedetail').forEach(e => {
e.addEventListener('click', () => {
var showid = e.dataset.id;
})
})
В модальном окне запускается вывод данных из БД на php
<?php
$detail_object = mysqli_query ($connection, "SELECT * FROM `detail` WHERE `id`='значение переменной showid'");
$detail = mysqli_fetch_assoc ($detail_object);
?>
Как передать значение переменной showid из JS в значение WHERE id = '...' ?
Ответы (1 шт):
Автор решения: Pr0gramm1st
→ Ссылка
Можно это реализовать с помощью объекта XMLHttpRequest, который позволит без перезагрузки страницы получить данные. Пример:
document.querySelectorAll('#updatedetail').forEach(e => {
e.addEventListener('click', () => {
var showid = e.dataset.id;
const request = new XMLHttpRequest();
const url = '<путь_к_вашему_файлу-обработчику>'; //где у вас делается запрос к БД
const data = {id: showid}
request.open("POST", url, true);
request.setRequestHeader("Content-type", "text/plain; charset=UTF-8");
request.addEventListener("readystatechange", () => {
if (request.readyState === 4 && request.status === 200) {
modal.innerHTML = request.responseText; //Здесь, собственно, выводим данные в модальное окно
} else {
console.log(response); //Здесь можно сделать обработку на случай ошибок
}
});
request.send(data);
});
});
P.S. и лучше, конечно же, модальное окно открывать тогда, когда данные в него уже были помещены, а не сразу по клику на ссылку.
То есть в теле условия
if (request.readyState === 4 && request.status === 200) {
modal.innerHTML = request.responseText; //Поместили данные
modal.open(); //Открыли модальное окно
}