[ brale1 @ 02.03.2010. 13:24 ] @
Pozdrav svima,

Molim pomoć i mišljenje oko rješavanja određenog konkretnog problema.

Želio bih napraviti jednostavni kalendar rezervacija.
Moja pitanja su :
da li je moguće to napraviti na način da se preko administratorske stranice npr klikom na datum (polje datuma) promijeni boju pozadine. Ta se izmjena sačuva i vidi na stranici za "posjetioca"?
Može li se to riješiti php skriptom, ili moram koristiti i bazu podataka ?
Već sam dosta prosurfao, ali ako tko zna kakav koristan link......
Početnik sam u web dizajnu, svaka pomoć je dobrodošla
Hvala
[ s3tx @ 02.03.2010. 13:37 ] @
Naravno da moze. Posto neces da koristis mysql, kao bazu mozes da koristis textualne fajlove. Lepo prilikom klika na datum snimis vrednost nove boje i kad korisnik pokrece njegovu stranicu informacija o boji se cita iz fajla u koji si ti snimio.
[ Goran Rakić @ 02.03.2010. 13:39 ] @
Moraš negde da sačuvaš koji će datumi biti ofarbani. Moguće varijante su čuvanje u bazi, čuvanje u nekoj tekstualnoj datoteci ili zapisivanje pisanje direktno u HTML.

PHP-om možeš da sastaviš i sačuvaš HTML dokument, nikakva baza ti onda ne treba. Malo je teže uraditi izmenu kalendara jer bi morao da pročitaš i rastaviš HTML kako bi dodao/oduzeo boju pozadine, ali ni to nije komplikovano. Međutim ako možeš da samo prepišeš stari kalendar novim onda nema potrebe da učitavaš postojeći kalendar.
[ brale1 @ 02.03.2010. 14:02 ] @
Super,
hvala na brzom odgovoru.
rezervacije moraju biti jednostavno promjenjive:
Ja sam zamislio ovako:
onClick na polje datuma, promijeni se boja pozadine. - i to je to.

E sad...

ta skripta koja upućuje da se boja pozadine polja od negdje pročita, kako to izgleda ?
napravim php koji sadrži tablicu(kalendar) i sveskupa pozovem u html-u ?
[ Goran Rakić @ 02.03.2010. 17:39 ] @
Neka HTML stranica sa kalendarom, kalendar.html izgleda otprilike ovako.

Code:

<!doctype html>
<html>
<body>
  <table>
    <tr><td id="c1">1</td><td id="c2">2</td>...</tr>
    ...
  </table>
</body>
</html>


Da bi na datum 2. postavio pozadinu treba dodati malo CSS-a:
Code:

<style type="text/css">
  td#c2 { background: yellow; }
</style>


Sada nam treba PHP stranica za uređivanje, kalendar_admin.php. Trik je da ispišeš niz skrivenih polja u kojima ćeš preneti izbor obojenih. Onda iz onclick samo postaviš vrednost skrivenog polja. Kada se ovaj skriveni formular pošalje skripta će da ispiše CSS i sačuva sve u kalendar.html...

Code:

<?php
if($_SERVER['REQUEST_METHOD']) == 'POST') {
  // sastavimo tekst td#c1, td#c2,... za sve koji su odabrani
  $css = ''; $sep = '';
  foreach($_POST['c'] as $k=>$v) {
     $css .= $v ? $sep.' td#c'.$k : ''; $sep = ','
  }

  // sastavimo i ispišemo kalendar.html, još elegantnije pročitamo šablon kalendar.inc i onda u njega dodamo css
  $html = <<<EOT
<!doctype html>
<html>
<head><style type="text/css">'.$css.' {background: yellow;}</style></head>
<body><table>...</table></body>
</html>
EOT;

  file_put_contents('kalendar.html', $html);  
}
else {
  // skriveni formular 
  echo '<form method="post" name="c">';
  for($d = ...; $d < ...; $d++) {
    echo '<input type="hidden" name="c['.$d.']" value="0" />';
  }
 
  // ovde ide ispis kalendara zajedno sa onclick="document.c.elements[this.id].value = 1"
  // ili poziv neke toggle funkcije koja će da promeni polje i da sačuva izbor u skrivenoj formi

  // Submit
  echo '<input type="submit" value="Sačuvaj" />';
  echo '</form>';
}
?>
[ brale1 @ 02.03.2010. 19:04 ] @
Pomoć i preko očekivanja
Hvala lijepa Gorane
Pozdrav