Можно ли создавать куски JS кода в PHP цикле?
Нужно выводить записи с базы данных с помощью PHP. Вывожу циклом. В каждой выводимой записи должна присутствовать кнопка (JS) которая по нажатию меняет стиль выводимой записи (display: none->block). На данный момент вывожу лишь одну запись (без цикла). Соответственно и JS код писал индивидуально под конкретную одну запись.
Вот сейчас думаю выводить сразу все записи (их более 30). Писать вручную JS код с привязкой к кнопкам для срабатывания под каждую запись считаю не логично.
Подскажите пожалуйста, можно ли создавать JS функции и кнопки для их срабатывания вместе с выводимой записью с БД в цикле? В таком случае, как присвоить уникальный id каждой кнопке? Думаю, использовать что-то типа
id="block".$i."
Ответы (1 шт):
<?php
$arr = ['123','123123','a','b','c'];
foreach ($arr as $value){ // Через цикл выводим поля обёрнутые в общий див с классом main
echo '<div class="main"><div class="value">'.$value.'</div><button class="but">Скрыть/Показать</button></div>';
}
?>
<style>
.main{
display: block;
width: 200px;
background: #003eff;
text-align: center;
}
.but{
background: white;
}
.value{
display: block;
}
.hide {
display: none;
}
</style>
<script language="JavaScript">
window.onload = function () { // При загрузке документа
let but = document.getElementsByClassName('but'); // Получаем кнопки
[...but].forEach(function (c) { // Для каждой...
c.addEventListener('click', function () { // Отслеживаем нажатие
let div = this.parentNode.children[0]; // Получаем через родителя (main) его div со значением
div.classList.toggle('hide'); // Переключаем класс показать-скрыть
})
})
}
</script>