wygenerowanie terminarza

0

Witam,

potrzebuję wygenerować macierz w stylu:

           nazwisko_1/gabinet_1         nazwisko_2/gabinet_2                  nazwisko_3/gabinet_3    ......................

08:00
08:15
08:30
08:45
.
.
.
.

wiadomo słownik GABINET: GABINET_ID, GABINET_NAZWA

napisałem sobie już zwykłą pętlę for, która generuje mi godziny z zadanym odstępem czasowym między jedną a drugą.
Totalnie nie mam pomysłu jak wygenerować na ekranie co powyżej. Czy może ktoś robić coś podobnego i może zapodać pseudo kod ?

pozdrawiam

1

A co ma być wewnątrz tej tabelki, puste komórki?

Bo jeśli chodzi ci tylko o wygenerowanie nagłówków i godzin, to sprawa jest prosta:

<table border="1">
<?php
	$gabinety = array('Kowalski', 'Nowak', 'Doe');
	$godzinaStart = 8; $godzinaStart = mktime($godzinaStart, 0);
	$minutOdstep = 15;
	
	// wypełnianie pierwszego rzędu
	echo '<tr><td></td>'; // początek rzędu i pusty element
	foreach ($gabinety as $g)
		echo '<th>' . $g . '</th>';
	echo '</tr>'; // koniec pierwszego rzędu
	
	// wypełnianie kolejnych rzędów w postaci [godzina][][][][]
	for ($i = 0; $i < 10; $i++)
	{
		// generowanie napisów z godziną
		$godzina = date("H:i", $godzinaStart + $minutOdstep * $i * 60);
		echo '<tr><th>' . $godzina . '</th>';
		for ($j = 0; $j < count($gabinety); $j++)
			echo '<td></td>'; // wstawianie pustych kolumn w ilości pasującej do ilości gabinetów
		echo '</tr>';
	}
?>
</table>

Jeżeli z kolei masz jeszcze te godziny przyjęć/zajętości/czegokolwiek w bazie danych i chcesz wypełnić odpowiednio tabelkę - sprawa się komplikuje, ale to jest do zrobienia.

<font size="2">Uwaga, kod jest brzydki, jego jedyna zaleta jest taka, że działa :-)</span>

0

dzięki za odpowiedz :)

wewnątrz ma być link, po kliknięciu którego będe mógł dokonać wpisu w bazie, że na ten przedział czasowy i dla danego gabinetu wpisuję jakieś imię i nazwisko pacjenta.

0

kod rzeczywiście działa.
Dostosowałem go po Codeigniter, w którym piszę. Napisałem sobie helper do generowania tych godzin.
Jednak mam sowity problem z linkami które miałyby się pojawić w tych pustych komórkach.
Link miałby prowadzić do strony z formularzem, który zawierałby pola imie i nazwisko, godzinę ( klikniętą ). Po zapisaniu tego do bazy zaznaczyć komórkę kolorem

1

E, no bez przesady, to akurat nie jest bardzo trudne:

(zmodyfikowana część tego, co wyżej)

// generowanie napisów z godziną
$godzina = date("H:i", $godzinaStart + $minutOdstep * $i * 60);
echo '<tr><th>' . $godzina . '</th>';
foreach ($gabinety as $g)
{
	$link = '/whatever?godzina=' . $godzina . '&gabinet=' . $g;
	echo '<td><a href="/' . $link . '">Klik</a></td>'; // wstawianie pustych kolumn w ilości pasującej do ilości gabinetów
}
echo '</tr>';

Jeżeli chcesz zmieniać kolor komórki, to musisz sprawdzać, czy komórka o danej godzinie i w danym gabinecie jest w jakieś bazie danych oznaczona jakąś flagą i w zależności od tego zmienić tylko echo na echo i odpowiednio ostylować klasę zaznaczona w CSS.

Jeżeli chciałbyś mieć wygenerowane natomiast komórki, które się rozszerzają jeszcze, kiedy zajmują więcej niż jedno pole - sprawa jest zdecydowanie cięższa - ale chyba mam gdzieś kod który to realizował dla potrzeb pewnego starego projektu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1