Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.06.2017, 08:21
Новичок на форуме
Отправить личное сообщение для localghost1515 Посмотреть профиль Найти все сообщения от localghost1515
 
Регистрация: 15.06.2017
Сообщений: 8

Группировка по дате в таблице
Здравствуйте дорогие друзья, на javascript разбираюсь не очень (только умею подключать сторонние библиотеки) прошу строго не судить. И так есть таблица (вообще у меня Datatables, но можно использовать и обычную таблицу если это решит данный вопрос) в таблице идет дата, потом ФИО пациента и потом адрес и т д. При выборке из mysql он естественно выводит всё что есть подряд. И получается так например за один день если врач принял 3 пациента он эту дату выводит три раза. А хотелось бы как то сгруппировать даты чтоб он дату показывал один раз а фамилии три. Привожу пример в картинках Сейчас выглядит так

Хотелось бы так
Возможно ли это ? или есть ещё варианты у кого какие ? идеи ? ЧТобы как то отдельным образом показать даты чтоб бухгалтер не считал каждый раз по дням...) Спасибо всем

Последний раз редактировалось localghost1515, 15.06.2017 в 08:24.
Ответить с цитированием
  #2 (permalink)  
Старый 15.06.2017, 14:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

0000-00-00 - врач из будущего или прошлого? )
Если учет ведется, то это поле должно быть обязательным к заполнению.

В общем-то, что вы спрашиваете, это не группировка, вы хотите просто удалить содержание из ячеек таблицы. Да можно, как можно было бы и разобрать запрос на стороне сервере, поместив данные под ключами дат.
Ответить с цитированием
  #3 (permalink)  
Старый 15.06.2017, 16:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

localghost1515,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
   <style type="text/css">
   <!--

   -->
   </style>
  <script>

 window.addEventListener("DOMContentLoaded", function() {
    var a = document.querySelectorAll("tr td:first-child"), obj = {};
    [].forEach.call(a, function(b) {
        var t = b.textContent;
        obj[t] ? (b.textContent="") : (obj[t]=true)
    })
});
  </script>
</head>

<body>
 <table>
 	<tbody>
<tr><td>Запись 1></td><td>1000</td></tr>
<tr><td>Запись 1></td><td>1111</td></tr>
<tr><td>Запись 1></td><td>2134</td></tr>
<tr><td>Запись 4></td><td>2232</td></tr>
<tr><td>Запись 5></td><td>1223</td></tr>
<tr><td>Запись 5></td><td>1000</td></tr>

 	</tbody>
 </table>

</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 15.06.2017, 17:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

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

<html>
<head>
</head>
<body>
<table border="1">
    <tr>
        <td rowspan="3">1</td>
        <td>a</td>
    </tr>
        <tr><td>b</td>
    </tr>
    <tr>
        <td>c</td>
    </tr>
    <tr>
        <td rowspan="2">2</td>
        <td>d</td>
    </tr>
    <tr>
        <td>e</td>
    </tr>
</table>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 16.06.2017, 14:55
Новичок на форуме
Отправить личное сообщение для localghost1515 Посмотреть профиль Найти все сообщения от localghost1515
 
Регистрация: 15.06.2017
Сообщений: 8

Сообщение от laimas Посмотреть сообщение
0000-00-00 - врач из будущего или прошлого? )
Если учет ведется, то это поле должно быть обязательным к заполнению.
Врач из настоящего ) Правильно говорите поля надо сделать обязательными. Спасибо совсем забыл ( исправлю
Ответить с цитированием
  #6 (permalink)  
Старый 16.06.2017, 14:58
Новичок на форуме
Отправить личное сообщение для localghost1515 Посмотреть профиль Найти все сообщения от localghost1515
 
Регистрация: 15.06.2017
Сообщений: 8

Сообщение от laimas Посмотреть сообщение
рони,
по уму, автору нужно иметь данные, где первичным ключом будут даты, тогда количество элементов у ключа будет определять структуру таблицы. То есть ее построение не вызовет затруднений.
Спасибо ! Попробую что то сделать именно в этом направлении. Насколько я понял тут JS и не нужен ? или я не правильно понял ?
Ответить с цитированием
  #7 (permalink)  
Старый 16.06.2017, 15:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от localghost1515
Насколько я понял тут JS и не нужен ?
Все зависит от того, какая сторона формирует эту таблицу. Если это сервер, то конечно нет. При этом не обязательно готовить и предварительный массив с ключами дат и вложениями. Если запросом можно возвратить все строки сразу (fetchAll), то array_count_values(array_colum($result, 'date')) - это будет информация для rowspan, и даже какие срезы массива данных ФИО нужно брать, чтобы проще сделать вывод.

Вот только при таком выводе таблицы "Показать по" должен оперировать не строками записей, а быть завязанным на количество дат в отображении, иначе часть данных дат может отображаться с переносами на другую страницу. Хотя в общем-то решать вам.

Последний раз редактировалось laimas, 16.06.2017 в 15:22.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрытие строк и их группировка Lena20167777 Элементы интерфейса 0 26.05.2016 23:45
Имеет ли смысл хранить даты в отдельной таблице? frutality Серверные языки и технологии 7 15.08.2013 19:39
Нажатие по дате в календаре срабатывает только со второго клика afr0 Events/DOM/Window 4 31.10.2012 13:39
Как сделать размер ячейки в таблице не больше определённого значения? javascript_pupil (X)HTML/CSS 16 18.02.2012 12:52
Изменение цвета ячейки в таблице, при наведении на строку другой таблицы Psychosonic Общие вопросы Javascript 12 24.11.2010 16:44