Autor Zpráva
Tirus
Profil
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 *
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
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 *
Ikdyž to máš ve třídě->metodě, tak můžeš používat lokální proměnné ala $hour ;)
Tirus
Profil
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
Jozin:
jinak na ten tvůj nástin.. hlásí chybu
Notice: Undefined offset: 16 in
Jozin
Profil *
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
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

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0