0 / 0 / 0
Регистрация: 28.03.2018
Сообщений: 33

Как сделать динамическую таблицу?

23.02.2023, 19:46. Показов 553. Ответов 5

Студворк — интернет-сервис помощи студентам
У меня есть отделы в одной таблице и сотрудники в другой таблице. Как я могу вызвать это с помощью php, чтобы отделы отображались в части thead таблицы HTML, а сотрудники, связанные с этим отделом, отображались в части tbody таблицы HTML.

PHP
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
<table>
    <thead>
        <tr>
            <?php
                foreach($dep as $dep_id){
            ?>
            <th><?=$dep_id?></th>
            <?php
                }
            ?>
        </tr>
    </thead>
    <tbody>
        <?php
            foreach($dep as $dep_id){
            $sqlempl=odbc_exec($connection,"SELECT * FROM EMPL_TABLE WHERE EMPL_ID='".$dep_id."'");
            while($empl=odbc_fetch_array($sqlempl)){ 
        ?>
        <tr>
            <td><?=$empl['EMPL_NAME']?></td>
        </tr>
        <?php
            }
            }
        ?>
    </tbody>
</table>
код, который я написал, работает неправильно, он собирает всех сотрудников в первом отделе.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.02.2023, 19:46
Ответы с готовыми решениями:

Подскажите как сделать динамическую форму
Добрый вечер! Есть форма: &lt;input type=&quot;checkbox&quot; name=&quot;ch1&quot;&gt; &lt;input type=&quot;text&quot; class=&quot;text&quot; name=&quot;n1&quot;&gt; &lt;input...

Как сделать динамическую таблицу?
Добрый день, подскажите как можно сделать таблицу для игры, и что бы её размерность задавал пользователь какую технологию лучше...

Как сделать динамическую таблицу меняющую размеры?
Как сделать динамическую таблицу меняющую размеры?

5
132 / 76 / 16
Регистрация: 08.07.2022
Сообщений: 309
23.02.2023, 19:51
Вы составляете HTML каркас. Пишите JS код с использованием ajax \ fetch и подгружаете любые данные уже в каркас в завимости от условий и стадий

1) Инициализация таблицы ajax \ fetch (На вызов PHP файла)
1.1) Получить отделения
1.2) От первого отделения получить сотрудников
1.3) Вывести отделения в первую таблицу, сотрудников первого отделения во вторую

2) Установить клик на первую таблицу отделений, который будет делать ajax \ fetch запрос (На вызов PHP файла)
2.1) Получить сотрудников по выделенному отделению
2.1) Вывести сотрудников во вторую таблицу.

Задача эта выглядеть так
0
Эксперт PHP
 Аватар для liris
5127 / 1086 / 160
Регистрация: 16.01.2023
Сообщений: 2,681
23.02.2023, 20:22
То есть вы хотите так примерно?

Отдел 1 Отдел 2 Отдел 3
Иванов Петров Сидоров

Цитата Сообщение от Adam Baburin Посмотреть сообщение
код, который я написал, работает неправильно
У вас нет связи между столбцами и строками в данной таблице.
Отделы выводятся вертикально, а таблица заполняется горизонтально.
Вам нужно сформировать массив, где есть соответствие отделов и сотрудников. Чтобы вы точно знали, что этот сотрудник входит именно в этот отдел, например так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$departments = [
0 => 'Отдел 1',
1 => 'Отдел 2',
2 => 'Отдел 3',
];
 
$personalities = [
0 => ['Иванов', 'Григорьев', 'Антонов'],
1 => ['Петров', 'Сергеев'],
2 => ['Сидоров', 'Васильев'],
];
 
$numberDepartments = count($departments);
Тогда заполняете таблицу следующим образом. Шапка:

PHP
1
2
3
4
5
$thead = '<thead><tr>';
for ($i = 0; $i < $numberDepartments; $i++) {
    $thead .= '<td>' . $departments[$i] . '</td>';
}
$thead .= '</tr></thead>';
Тело таблицы заполняется аналогично, но есть нюанс. Вам предварительно нужно узнать, сколько вам нужно строк в таблице. Потому что в одном отделе может быть больше сотрудников, чем в другом. И рисовать именно нужное число строк (в каждой строке вызывая цикл по каждому сотруднику).

P.S. Вообще это не самый удобный вывод, имхо.
0
132 / 76 / 16
Регистрация: 08.07.2022
Сообщений: 309
23.02.2023, 20:43
Цитата Сообщение от liris Посмотреть сообщение
P.S. Вообще это не самый удобный вывод, имхо.
Верно. По этому я и привёл пример с выбором в левосторонней области отдела, а в правом вывод сотрудников. В добавок можно прикрутить поиск по сотруднику, и сразу по имени отфилировать все отделы и сотрудников
0
0 / 0 / 0
Регистрация: 28.03.2018
Сообщений: 33
23.02.2023, 21:07  [ТС]
Здесь должен быть echo "</tr><tr>";
0
Эксперт PHP
 Аватар для liris
5127 / 1086 / 160
Регистрация: 16.01.2023
Сообщений: 2,681
24.02.2023, 06:55
Цитата Сообщение от Adam Baburin Посмотреть сообщение
Здесь должен быть
Я вам пример привел, дальше просто лень писать стало. Тело таблицы строится полностью аналогично заголовку. Если по вашему примеру.
Но лично я бы сделал примерно так:

ФИО Должность
Отдел 1
Иванов Начальник
Петров Первый зам
Сидоров Секретарь
Отдел 2
Андреев Главбух
Антонов Бухгалтер
Отдел 3
Сергеев Бригадир
Петренко Рабочий

Причем можно сделать таблицу раскрывающейся (по умолчанию отделы свернуты, по клику раскрывается нужный отдел). Это на JS буквально за пару минут можно сделать. Даже на ванильном.

Добавлено через 3 минуты
Цитата Сообщение от liris Посмотреть сообщение
Но лично я бы сделал примерно так
Тогда у вас построение будет очень простым. Без дополнительных сложностей типа учета количества работников в каждом отделе.

Примерно так:

PHP
1
2
3
4
5
6
7
8
echo '<table>';
foreach ($departments as $department) {
    echo "<tr><td colspan='2'>" . $department['name'] . "</td></tr>";
    foreach ($departments['personalities'] as $person) {
        echo "<tr><td>" . $person['name'] . "</td><td>" . $person['position'] . "</td></tr>";
    }
}
echo '</table>';
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.02.2023, 06:55
Помогаю со студенческими работами здесь

Как распарсить динамическую таблицу?
Здравствуйте. Пытаюсь разобраться в парсинге страниц. Остановился пока на простой BeautifulSoup4 (Python3). Позже думаю на Scrapy перейти. ...

Как закрасить динамическую таблицу
Закрасил таблицу в шахматном порядке, но с остальными двумя не могу, прошу помощи( Закрас шахматной : let n = 10, s; ...

WPF, как создать динамическую таблицу?
Всем доброго дня. Возникла задача сделать средствами WPF динамическую таблицу. Суть в том что количество столбцов в ней может меняться. Я...

Как связать динамическую таблицу Excel с PowerPoint
Добрый день! Столкнулся с проблемой и не могу понять как ее решить и вообще, возможно ли это. Суть в чем: Есть файл эксель со множеством...

Как реализовать динамическую таблицу средствами WPF?
Всем доброго дня. Возникла потребность сделать средствами WPF довольно сложную динамическую таблицу, на вроде такого. Я далеко не...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru