Autor | Zpráva | ||
---|---|---|---|
Tirus Profil |
#1 · Zasláno: 9. 5. 2011, 12:43:53
Potřeboval bych poradit jak přesněji udělat denní kalendář podobně jako je v outlooku.
Jde mi o to, že po najetí na stránku, se mi zobrazí události toho dne. Jedná se o různé lidi. např. Tomáš, Jana, Petr. Výsledek by vypadal násl. 0:00 0:15 ...... Tomáš Jana Petr a vždy třeba je událost mezi např. 1:00 a 3:00 u Tomáše, tak se mu to do jeho řádku zapíše a zase to samé u Jany, ale třeba s jinýma číslama. Dokázal bych to pomocí tabulek, ovšem toto by udělalo to, že by to bylo šíleně široké. Ovšem, chtěl bych to na výšku (čas v ose Y a jména v ose X). Jinak čas si generuji zatím následovně <? for ($this->time_hour; $this->time_hour < 24; $this->time_hour++) { $this->time_minute = '00'; for ($this->time_minute; $this->time_minute < 60; $this->time_minute = $this-> time_minute + 15) { //echo $this->time_hour . ':' . $this->time_minute . '<br/>'; $this->event[] = array('cas' => $this->time_hour . ':' . $this->time_minute); } } Snad je to pochopitelné :( |
||
Jozin Profil * |
#2 · Zasláno: 9. 5. 2011, 16:02:40
Zdravím,
prvně bych začal tím tvým zdrojákem. Nevím proč používáš $this->time_hour a $this->time_minute, když klidně můžeš používat $hour, $minute (například). Tvůj problém asi je, jak zajistit správný počet sloupců, že? Jestli tomu tak je, tak na začátku zjisti počet lidí a jejich jména... poté bude hlavička tabulky, kde bude: "čas | jmeno1 | jmeno2", for cyklem budeš procházet časy, tak jako teď. Místo zakomentovaného echa bude další for, ve kterém se bude vždy vypisovat jedna buňka tabulky. Tento výpis bude podmíněn tím, zda-li existuje záznam pro právě procházeného člověka. Dám menší ukázku zdrojáku pro představu: <?php $people = array('Jmeno1', 'Jmeno2'); //pole jmen $action = array( //pole akcí k jménům array(15 => array(45 => 'Nějaká akce')), array() ); $count = count($people); echo "<table>\n<tr>\n<th>Čas</th>\n"; for($i=0;$i<$count;$i++) { echo "<th>{$people[$i]}</th>\n"; } echo "</tr>\n"; for($hour=0;$hour<24;$hour++) { for($minute=0;$minute<60;$minute+=15) { echo "<tr>\n<td>{$hour}:{$minute}</td>\n"; for($i=0;$i<$count;$i++) { echo "<td>{$action[$i][$hour][$minute]}</td>\n"; //pokud akce nebude existovat, tak v proměnné nic nebude a tak se vytvoří prázdná buňka } echo "</tr>\n"; } } echo "</table>"; ?> Možná tam jsou nějaké chyby, ale orientačně by to tak mělo fungovat ;) Jozin. |
||
Tirus Profil |
#3 · Zasláno: 9. 5. 2011, 16:12:45
Jozin:
„prvně bych začal tím tvým zdrojákem. Nevím proč používáš $this->time_hour a $this->time_minute, když klidně můžeš používat $hour, $minute (například).“ na to odpovím.. jelikož to mám v třídě následně :) ... jinak díky za nástin a zachvilk se na to kouknu pořádně :) |
||
Jozin Profil * |
#4 · Zasláno: 9. 5. 2011, 17:27:47
Ikdyž to máš ve třídě->metodě, tak můžeš používat lokální proměnné ala $hour ;)
|
||
Tirus Profil |
#5 · Zasláno: 9. 5. 2011, 20:13:32
Jozin:
Jo jasně to vím, ale pracuji s tím na více místech v průběhu a nechce se mi to pak přiřazovat či dávat jako vstup. proměnnou do funkce |
||
Tirus Profil |
#6 · Zasláno: 9. 5. 2011, 22:01:28
Jozin:
jinak na ten tvůj nástin.. hlásí chybu Notice: Undefined offset: 16 in |
||
Jozin Profil * |
#7 · Zasláno: 9. 5. 2011, 22:09:52
Jak jsem psal... bylo to jen pro představu, jak to má fungovat... máš to těsně nad podpisem v tom příspěvku ;)
|
||
Tirus Profil |
#8 · Zasláno: 9. 5. 2011, 22:24:22
Jozin:
jj, já jsem si to četl. už trochu upravil, ovšem nevím jak tuto hlášku odhodit.. napadlo mne to tak, že bych testoval zda existuje nějaká hodnota či ne. Ale to mi příjde jako kokotina |
||
Časová prodleva: 13 let
|
0