Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/47: Рейтинг темы: голосов - 47, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 17

Передать данные в модальное окно

09.08.2017, 16:44. Показов 8789. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем хорошего дня!
Помогите пожалуйста в решении задачи.
Есть на сайте выведенные flex новостные сообщения (на главной выводим только картинку и заголовок, остальные данные делает hidden ):
<div class="flex">
<div class="flexitem">
<div class="itemimg">
<img src="URL" alt="альтернативный текст">
</div>
<div class="itemtitle">
<a class="title">Заголовок 1</a>
</div>
<div class="itemtext">
Полный текст сообщения
</div>
</div>
<div class="flexitem">
<div class="itemimg">
<img src="URL" alt="альтернативный текст">
</div>
<div class="itemtitle">
<a class="title">Заголовок 2</a>
</div>
<div class="itemtext">
Полный текст сообщения
</div>
</div>
<div class="flexitem">
<div class="itemimg">
<img src="URL" alt="альтернативный текст">
</div>
<div class="itemtitle">
<a class="title">Заголовок 3</a>
</div>
<div class="itemtext">
Полный текст сообщения
</div>
</div>
</div>
<script>
function abc () {
}
</script>
<div class="modal">
Картинка
Заголовок
Полный текст сообщения
</div>

Задача у меня в том, что нужно в модальном окне показать по клику новость полностью (вместе с полным текстом и т.д.).
Как правильно найти и получить тексты окружающего, именно нужного Item, после клика на конкретный заголовок.
То есть я нашел много способов открыть модальные окна, но как правильно получить в SCRIPT данные div-ов окружения нужного Заголовка? (можно ли это получить используя class элементов, или только по id)

Конечно про передачу "переменных" во множестве в инете, но так толком не смог именно с передачей данных в скрипт найти)

Подскажите пожалуйста - как можно решить данную задачу!

Добавлено через 1 час 53 минуты
C id решение изучил)))
можно находить и присваивать
<div class="flexitem" id="1">
<div class="itemimg">
<img src="URL" alt="альтернативный текст">
</div>
<div class="itemtitle">
<a class="title" onclick="abc('1')">Заголовок 2</a>
</div>
<div class="itemtext">
Полный текст сообщения
</div>
</div>

получаем в скрипт номер id в new:
<script>
function abc (new) {

ищем в коллекции нужный flexItem по id:
var test = document.getElementById(new);

далее уже в нем (его коллекции тегов) можно найти все нужное и присвоить переменной:
$a=test.getElementsByTagName("div")[1].innerText;
и т.д.

}
</script>

НО вопрос остается как все сделать изящнее))) то есть найти фокус -где кликал и взять содержание окружающих тегов???

и далее все это "затолкать и показать" в модальном окне (классном-преклассном)))

Добавлено через 23 минуты
тут немного надо уточнить)))
в коллекции по id 3 div-а [0,1,2]
можно также добраться до текста заголовка в теге a:
$a=test.getElementsByTagName("div")[1].getElementsByTagName("a")[0].innerText;

Кстати id я присваиваю в Laravel динамически (может быть любой строкой):
берем уникальное значение названия для id: <div class="flexitem" id="{{ $item['title'] }}"
и это же передаем в функцию <a onclick="abc('{{ $item['title'] }}')"........

function abc (new) {
var eml = document.getElementById(new);
.......
}

Добавлено через 22 часа 31 минуту
Всем хорошего дня!
Вот и вторую часть задачи в общем и целом решил)
Не хотел идти путем "лишних" GET или "POST" запросов при передаче,
посмотрел в интернете варианты и сделал так:

- взял "базовый и простой" вариант модального окна на
http://dontforget.pro/javascri... -plaginov/
стили, форму и т.д. наложил свои конечно)
если кому нужен будет скролл на окне не забываем в CSS окна вставить: overflow: auto;

-в коде модального окна присваиваем id нужным элементам (могут быть любые - не только div)

<div class="itemtitle" id="itemtitle">
<a class="title" onclick="abc('1')">Заголовок 2</a>
</div>
<div class="itemtext" id="itemtex">
Полный текст сообщения
</div>
</div>

- в скрипте:
<script>
function abc (new, new2) {


ищем в коллекции нужный flexItem по id:
var test = document.getElementById(new);

далее уже в нем (его коллекции тегов) можно найти все нужное и присвоить переменной:
$a=test.getElementsByTagName("div")[1].innerText;
и т.д.

просто передаем данные нужной сформированной переменной по id окна!):
$('#itemtext').text(a);


можно передать исполняемое
$('#itemtext').html(a);[/COLOR]

и т.д. и т.п. средствами jscript

все передается и по умолчанию показывается строково, поэтому более замороченная задача показать Заголовок как ссылку рабочую:

- в коде страницы при клике в функцию передаю нужное:

<div class="itemtitle">
<a class="title" onclick="abc('1','link')">Заголовок 2</a>
</div>


-не стал мудрить и в скрипте просто сформировал нужную исполняемую строку простой конкатенацией)))

$a=test.getElementsByTagName("div")[0].getElementsByTagName("a")[0].innerText;
var newtitle='<a href="'+new2+'" id="title" class="modaltitle" target="_blank">'+a+'</a>';


и передаем уже ее в окно <p id="title" class="modaltitle"></p>

$('#itemtitle').html(newtitle);

}
</script>

далее по необходимым элементам и т.д. подбираю-формирую что необходимо)

Возможно это и несколько "на-коленочный" подход) но у меня так работает в среде PHP7-Laravel5.4-OpenServer-Chrome
В других браузерах не тестил пока. Может и не зря писал и пригодится кому.

Удачи всем во всем!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.08.2017, 16:44
Ответы с готовыми решениями:

Как передать данные в модальное окно
В основном окне у меня есть var tur = oImg.src; Я открываю модальное окно showModalDialog('html/formAddPic.php','',status=no;'); ...

Передать id в модальное окно
В общем вопрос мой не новый и уже открывался даже на этом форуме, однако знаний в java не хватает понять до конца. Задача. Есть...

Модальное окно
а возможно ли сделать просто модальное окно в котором бы был статический контент? Не приложения а именно модальное окно, т.е при переходе...

6
09.08.2017, 17:05

Не по теме:

Лучше бы вы код оформили в специальные теги, а не красненьким подсветили.

0
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 17
09.08.2017, 17:42  [ТС]
Наверное и лучше было бы)
Но это не рабочий код , а ход решения задачи описал.
Пока ждал подсказок от других....
поэтому просто изложил ход решения, который возможно кому-то пригодиться.
Профи (особенно по яве) пофыркают конечно!))), но ведь и не помогли же.
0
09.08.2017, 17:51

Не по теме:

Цитата Сообщение от mikle2014 Посмотреть сообщение
но ведь и не помогли же
Просто ваше сообщение без тегов оформления совершенно не читабельно.

0
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 17
09.08.2017, 17:57  [ТС]
Нвверное так.
НО в самом начале сама задача была написана аккуратно-четко-понятно и без тегов оформления.
0
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 17
18.08.2017, 22:53  [ТС]
В продолжение темы!)))
Сделал модальное окно в котором открываю отдельную новость из "Ленты новостей".
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    <div id="modal_form"><div id="modal_close"><img src="gosmedia/img/close.png"> </div>
        <div class="feeduptitle2">
            <div id="feedlogo"></div>
            <div id="feedname"></div>
        </div>
        <div class="modal">
            <div class="feedtitle">
                <div id="feedtitle"></div>
                <div id="feedimg"></div>
                <div id="feedstring"></div>
                <div id="feedlink"></div>
                <div id="feeddate"></div>
            </div>
        </div>
    </div>
    <div id="overlay"></div>
и соответственно Script:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function modal(js) {
        $('#overlay').fadeIn(400,
            function () {
                $('#modal_form')
                    .css('display', 'block')
                    .animate({opacity: 1, top: '20%'}, 200);
                newlogo='<img src="'+js.feedlogo+'">';
                var pic = js.img.match(/.jpg|.JPG/);
                var pic2 = js.img.match(/.mp4/);
                var pic3=js.img.match(/.png/);
                if(pic) {
                    newimg='<img src="'+js.img+'">';
                }else if(pic2){
                    newimg='<video class="mp4_2" controls="controls"><source src="'+js.img+'" onerror="errorimg2()"></video>';
                } else if(pic3){
                    newimg='<img src="'+js.img+'" class="inv">';
                }
                newlink='<a href="'+js.link+'" target="_blank">Подробно на сайте</a>';
                $('#feedlogo').html(newlogo);
                $('#feedname').text(js.feedname);
                $('#feedimg').html(newimg);
                $('#feedtitle').text(js.title);
                $('#feedstring').html(js.string);
                $('#feeddate').text(js.date);
                $('#feedlink').html(newlink);
            });
        $('#modal_close, #overlay').click(function () {
            $('#modal_form')
                .animate({opacity: 0, top: '45%'}, 200,
                    function () {
                        $(this).css('display', 'none');
                        $('#feedimg').html('');
                        $('#overlay').fadeOut(400);
                    }
                );
        });
    }
НО вот (блин как всегда) у меня появился странный глюк:
- откываешь-открываешь окна и после открытия 7-9 окна начинает проскальзывать ( не видно) overlay и далее модальные окна начинают открываться не с первого "клика" на ссылку, а со второго - третьего...
В Chrome и FireFox одинаково)))
Выложил для теста на хостинг - эффект такой-же.
Есть у кого мысли по этому эффекту?
0
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 17
20.08.2017, 14:23  [ТС]
Всем привет)
Я подумал-посмотрел и пришел к выводу, что при тестировании проявляю "чрезмерное рвение".
То есть кликаю-открываю окна слишком быстро и эффекты анимации накладываются и начинает глючить особенно overlay.
Настроил время открытия-закрытия в анимации и вроде все нормализовалось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.08.2017, 14:23
Помогаю со студенческими работами здесь

Модальное окно
В сети взял модальное окно. Нужно переделать его что бы при нажатии меня спрашивало уверены ли вы? Нажав на &quot;Да&quot; Запрос...

Модальное окно
Подкиньте простенький код на чистом javascripte. Как отрыть модальное окно, свое? Так чтобы html код был по центру и по верх остальной...

Модальное окно
Доброго времени суток! Народ возникла необходимость в создании модальных окон при нажатии на ссылку, в эти окна должен быть встроен...

Модальное окно
Кто может помочь? Нужно преобразовать вот этот код &lt;html&gt; &lt;head&gt; &lt;title&gt;УЧЕБНИК&lt;/title&gt; &lt;style...

Модальное окно
Есть вот такое модальное окно, написано полностью на CSS. В нем есть поля для заполнения и кнопка submit. Есть два вопроса: 1. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru