Нашел на просторах интернета вот такой велосипед и попробовал прикрутить к себе:
мой код:
$queryfnfc = mysqli_query($CONNECTfafc, 'SELECT * FROM `news` LEFT JOIN users ON news.id_user=users.id_user WHERE id_category="'.$idcat.'" ORDER BY date_news DESC');
if ( !mysqli_num_rows($queryfnfc) ) echo '<div class="back-for-add-articles"><p>публикаций нет!</p></div>';
while ($rowfnfc = mysqli_fetch_assoc($queryfnfc) ) {
echo '.getPrewText(htmlspecialchars_decode($rowfnfc['text_news'])).'
<a href='#modal' class='open_modal'>Открыть окно</a>
<div id="modal" class="modal_div"> <!-- скрытый див с уникальным id = modal -->
<span class="modal_close">X</span>
'.htmlspecialchars_decode($rowfnfc['text_news']).'
</div>
';
}
<script>
$(document).ready(function() { // запускаем скрипт после загрузки всех элементов
/* засунем сразу все элементы в переменные, чтобы скрипту не приходилось их каждый раз искать при кликах */
var overlay = $('#overlay'); // подложка, должна быть одна на странице
var open_modal = $('.open_modal'); // все ссылки, которые будут открывать окна
var close = $('.modal_close, #overlay'); // все, что закрывает модальное окно, т.е. крестик и оверлэй-подложка
var modal = $('.modal_div'); // все скрытые модальные окна
open_modal.click( function(event){ // ловим клик по ссылке с классом open_modal
event.preventDefault(); // вырубаем стандартное поведение
var div = $(this).attr('href'); // возьмем строку с селектором у кликнутой ссылки
overlay.fadeIn(400, //показываем оверлэй
function(){ // после окончания показывания оверлэя
$(div) // берем строку с селектором и делаем из нее jquery объект
.css('display', 'block')
.animate({opacity: 1, top: '50%'}, 200); // плавно показываем
});
});
close.click( function(){ // ловим клик по крестику или оверлэю
modal // все модальные окна
.animate({opacity: 0, top: '45%'}, 200, // плавно прячем
function(){ // после этого
$(this).css('display', 'none');
overlay.fadeOut(400); // прячем подложку
}
);
});
});
</script>
как передать в модальное окно содержимое $rowfnfc['text_news']?
изначально когда модальное окно не открыто, в диве modal в коде отображается нужное содержимое, при клике, открывается окно и там уже ничего нет
можно канечно передать id новости в модальное окно при клике, и ajax'ом подгрузить туда из базы новость, но это дополнительный запрос в базу куча лишенго кода, я уверен можно как-то подругом выкрутится