Форум программистов, компьютерный форум, киберфорум
HTML, CSS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
10 / 10 / 0
Регистрация: 07.10.2016
Сообщений: 196

Динамический вывод данных в отдельные блоки

20.07.2022, 05:17. Показов 1216. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Возник такой вот вопрос. В скрипте PHP произвожу выборку данных из БД, соответственно сразу делаю вывод их в таблицу посредством echo, но теперь возникла потребность выводить их не в таблицу, а каждую запись в отдельный блок. Можно, конечно, сразу в разметке задать определенное количество блоков и потом записи выводить туда, но хотелось бы, чтобы во время вывода координаты каждого блока задавались программно.

Пока не совсем понимаю, как это осуществить, нужно, чтобы после вывода одного блока координата по х смещалась на ширину блока + отступ, а когда одна линия полностью занята, то происходило смещение по y на высоту блока + отступ.
JavaScript
1
2
3
4
5
6
7
8
9
10
//Вывод данных из БД согласно выбранной дате
$.ajax({
    url: "list_remind.php",
    type: "POST",
    data:  { dt: ddate },           
    cache: false,
    success: function(res){
        $("#div-data1").html(res);
    },
});
list_remind.php
PHP
1
2
3
4
5
6
7
8
9
while ($result = $sql->fetch_assoc()) {
    echo "<div id='div-redmin'><img id='img-redmin' src='../images/note_2.png'></img>
        <div id='text-redmin-date_bgn' title='дата создания напоминания'>от " . $d1 . "</div>
        <div id='text-redmin-date_end' title='срок напоминания'>на " . $d3 . "</div>
        <div id='text-redmin-nametsk' title='наименование напоминания'>" . $result['name_task'] . "</div>
        <div id='text-redmin-notetsk' title='примечание'>" . $result['note_tsk'] . "</div>
        <button class='btn-edit' title='Редактировать напоминание' id=" . $result['id'] . "></button>
        <button class='btn-del' title='Удалить напоминание' id=" . $result['id'] . "></button>";
}
CSS
1
2
3
4
5
6
7
#div-redmin {
    position: relative;
    width: 270px;
    height: 270px;
    top: 10px;
    left: 10px;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.07.2022, 05:17
Ответы с готовыми решениями:

вывод бд в отдельные блоки
как вывести информацию из бд от 1 до бесконечности в отдельных блоках допустим 1 блок в нём 3 блока новостей и в них автоматом выводило от...

Разбить строку на блоки, а затем эти блоки на отдельные слова
...доброго времени суток, уважаемые форумчане! Возникла задача - разбить строку на блоки, а затем эти блоки на отдельные слова. Не могу...

Вывод данных в отдельные ячейки Excel
Подскажите пожалуйста можно ли сделать вывод данных в Visual Basic (в Excel) в отдельные ячейки, например Т1 в одной ячейке, Т2 уже в...

6
10 / 10 / 0
Регистрация: 07.10.2016
Сообщений: 196
20.07.2022, 10:19  [ТС]
Сделал как бы так, но идёт сдвиг блоков, хотя это возможно и неправильно.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
    $to = 'myemail@yandex.ru';
    $subject = 'Test email subject';
    $message = 'Test from PHP at ' . date('Y-m-d H:i:s');
 
    $left = 10;
    for($c = 1; $c < 6; $c++) {
    echo "<div class='div-redmin' style='left: " .$left. "px; top: 10px;'><img class='img-redmin' src='../note.png'></img>
        <div class='text-redmin-date_bgn' title='дата назначения напоминания'>от " .$c. "</div>
        <div class='text-redmin-date_end' title='срок напоминания'>на " .$c. "</div>
        <div class='text-redmin-nametsk' title='наименование напоминания'>" .$to. "</div>
        <div class='text-redmin-notetsk' title='примечание'>" .$subject. "</div>
        <button class='btn-edit' title='Редактировать напоминание'></button>
        <button class='btn-del' title='Удалить напоминание'></button>";
        $left += 270;
    }
    
?>
HTML5
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<html>
    <head>
        <style>
        .div-redmin {
            display: inline-block;
            position: absolute;
            border: solid 0.5px #fff;
            width: 270px;
            height: 270px;
            vertical-align: top;
            /*margin: 10px 10px 10px 10px;*/
        }
        .img-redmin {
            width: 100%;
            height: 100%;
            object-fit: contain;
        }
        .text-redmin-nametsk {
            position: absolute;
            border-bottom: solid 0.5px #2F4F4F;
            color: #2F4F4F;
            top: 15%;
            width: 94%;
            height: 57%;
            left: 5px;
            font: Roboto, Verdana, Tahoma, sans;
            font-size: 18px;
            font-style: italic;
            font-weight: bold;
            text-align: center;
            vertical-align: middle;
            text-shadow: 2px 1px #C0C0C0;
            line-height: 1.0em;
        }
        .text-redmin-date_bgn {
            position: absolute;
            color: #2F4F4F;
            top: 7%;
            left: 15px;
            font: Roboto, Verdana, Tahoma, sans;
            font-size: 15px;
            font-style: italic;
            font-weight: bold;
            text-align: center;
            line-height: normal;
        }
        .text-redmin-date_end {
            position: absolute;
            color: #2F4F4F;
            top: 90%;
            left: 15px;
            font: Roboto, Verdana, Tahoma, sans;
            font-size: 15px;
            font-style: italic;
            font-weight: bold;
            text-align: center;
            line-height: normal;
        }
        .text-redmin-notetsk {
            position: absolute;
            color: #2F4F4F;
            top: 73%;
            width: 94%;
            height: 18%;
            left: 5px;
            font: Roboto, Verdana, Tahoma, sans;
            font-size: 14px;
            font-style: italic;
            font-weight: bold;
            text-align: center;
            vertical-align: middle;
            text-shadow: 2px 1px #C0C0C0;
            line-height: 1.0em;
        }
        .btn-edit {
            position: absolute;
            border: none;
            top: 92%;
            left: 70%;
            cursor: pointer;
            height: 30px;
            width: 30px;
            background: url("../edit.png") 0 0 no-repeat;
            background-size: 100%;  
            margin: 0px 0px 0px 0px;
        }
        .btn-edit:hover {
            transform: scale(1.1,1.1);
        }
        .btn-edit:active {
            background-position: 1 1px;
        }
        .btn-del {
            position: absolute;
            border: none;
            top: 92%;
            left: 83%;
            cursor: pointer;
            height: 30px;
            width: 30px;
            background: url("../delete.png") 0 0 no-repeat;
            background-size: 100%;  
            margin: 0px 0px 0px 0px;
        }
        .btn-del:hover {
            transform: scale(1.1,1.1);
        }
        .btn-del:active {
            background-position: 1 1px;
        }
        </style>
    </head>
</html>
0
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,947
20.07.2022, 15:14
Зачем вам position: absolute; этим вы себя загоняете в сложные рамки позиционирования. Вам достаточно display: inline-block; и отступов между ними margin.

CSS
1
2
3
4
5
6
7
8
.div-redmin {
            display: inline-block;            
            border: solid 0.5px #fff;
            width: 270px;
            height: 270px;
            vertical-align: top;
            margin: 10px 10px 10px 10px;
        }
других стилей для этого блока не нужно, кроме того вы потеряли в своем цикле закрывающий див.
Для картинки зарывающий тег </img> не нужен
1
10 / 10 / 0
Регистрация: 07.10.2016
Сообщений: 196
20.07.2022, 15:23  [ТС]
Цитата Сообщение от tgarl Посмотреть сообщение
других стилей для этого блока не нужно, кроме того вы потеряли в своем цикле закрывающий див.
Действительно нет, может это я его при копировании потерял? На счёт </img> видимо уже перестраховался, потому как всё перепробовал и ничего понять не мог. Тоже самое и по поводу absolute. До этого, сложно сформированные блоки через echo не выводил, поэтому в замешательство впал, когда начался сдвиг. Перепробовал всё, проблему так и не решил, потратив уйму времени, хотя частично решил немного за счёт дописания в цикл координаты top со знаком минус

Завтра проверю, спасибо, если действительно в закрывающем теге </div> был косяк, то жесть
0
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,947
20.07.2022, 15:40
Цитата Сообщение от VKont Посмотреть сообщение
сформированные блоки через echo не выводил
если они вам мешают, не используйте
Закрывайте PHP и используйте html без echo

PHP
1
2
3
4
5
6
7
8
9
10
11
12
while ($result = $sql->fetch_assoc()) {?>
    <div id='div-redmin'>
    <img id='img-redmin' src='../images/note_2.png'>
        <div id='text-redmin-date_bgn' title='дата создания напоминания'>от <?=$d1?></div>
        <div id='text-redmin-date_end' title='срок напоминания'>на <?=$d3?></div>
        <div id='text-redmin-nametsk' title='наименование напоминания'><?=$result['name_task']?></div>
        <div id='text-redmin-notetsk' title='примечание'><?=$result['note_tsk']?></div>
        <button class='btn-edit' title='Редактировать напоминание' id='<?=$result['id']?>'></button>
        <button class='btn-del' title='Удалить напоминание' id='<?=$result['id']?>'></button>";
     </div>
<?php
}
0
57 / 15 / 6
Регистрация: 08.08.2020
Сообщений: 266
21.07.2022, 07:40
Php, не знаю, но всё ведь практичеаеи везде одинаково. Я бы в html, гридами создал эти блоки, и получая данные с бэка пустил бы их на фронте через цикл for. К цикле for, соответственно прописывается один блок grid. Это я если я правильно вопрос понял.
0
10 / 10 / 0
Регистрация: 07.10.2016
Сообщений: 196
21.07.2022, 09:21  [ТС]
Не, я реально забыл закрыть первый <div> и в результате у меня был сдвиг элементов, хотя судя по этой ошибке у меня уже сдвиг в голове. Реально не мог понять в чём причина, а всего лишь на всего не хватило внимательности!
Сегодня исправил, всё пошло, особой надобности нет мутить вывод как-то по-другому, т. к. и через отступы идёт как надо, четыре блока в верхней строке и четыре блока в нижней. Теперь парился, чтобы составляющие блока объединить, а оказывается можно было просто формой, да?
Казалось бы за полтора месяца вроде бы уже разобрался с разметкой и версткой, ан нет не разобрался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.07.2022, 09:21
Помогаю со студенческими работами здесь

Поместить ввод и вывод данных в отдельные методы класcа Animal
Доброго времени суток! Вот начал изучать c#, и столкнулся с проблемкой. Вот код примера using System; using...

Вывести переменные в отдельные блоки <div>
Есть код: defined('_JEXEC') or die('Restricted access'); ?&gt;&lt;?php if(!headers_sent()){ header('Content-Type: text/css;...

Как выделить отдельные блоки из текста
Есть фрагмент текста &lt;tr class=&quot;&quot; id=&quot;128230683&quot;&gt;&lt;td&gt;текст1&lt;/td&gt; &lt;td&gt;&lt;center&gt;экзамен&lt;/center&gt;&lt;/td&gt; &lt;td class=mark...

Как структурировать в редакторе куски кода в отдельные блоки
Такой вопрос, больше не по C#, а по самому Visual Studio Когда создаёшь обработчик события, ну к примеру: + private void...

Динамический вывод данных из БД
Нужно динамически выводить данный из БД. То есть что бы при одновлении данных данные менялись и на странице. Для этого мною был...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru