Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Kalendarz
Librai7
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.04.2012

Ostrzeżenie: (0%)
-----


Witam wszystkich, mój pierwszy post. Na innym forum nie uzyskałem odpowiedzi więc może tu mi się uda (IMG:style_emoticons/default/worriedsmiley.gif) Jak w temacie robię kalendarz na stronę www. i już kod html zrobiłem, a wygląda tak:

Kod
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

</div></div></div></div></div></div></div></div><div id="calendar-3" class="sb-bot"><div class="sb-top"><div class="sb-right"><div class="sb-left"><div class="sb-rb"><div class="sb-lb"><div class="sb-rt"><div class="sb-lt"><h2>Kalendarium wydarzeń</h2><div id="calendar_wrap"><table id="wp-calendar">
    <caption>Kwiecień 2012</caption>
    <thead>
    <tr>
        <th scope="col" title="poniedziałek">P</th>
        <th scope="col" title="wtorek">W</th>
        <th scope="col" title="środa">Ś</th>
        <th scope="col" title="czwartek">C</th>
        <th scope="col" title="piątek">P</th>
        <th scope="col" title="sobota">S</th>
        <th scope="col" title="niedziela">N</th>
    </tr>
    </thead>

    

    <tbody>
    <tr>
        <td colspan="6" class="pad"> </td><td id="today">1</td>
    </tr>
    <tr>
        <td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td>
    </tr>
    <tr>
        <td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td>
    </tr>
    <tr>
        <td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td>
    </tr>
    <tr>
        <td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td>
    </tr>
    <tr>
        <td>30</td>
        <td class="pad" colspan="6"> </td>
    </tr>
    </tbody>
    </table>




Prosiłbym was o pomoc w dokończeniu go. Chciałbym żeby co miesiąc sam się zmieniał (miesiąc) i podświetlał obecny dzień. Jak na razie sam zmieniam co miesiąc ręcznie wszystko (IMG:style_emoticons/default/sad.gif) , a nie mam pojęcia jak to zrobić, wiem że potrzebna jest tu wiedza PHP której niestety na razie nie posiadam. Z góry dziękuje za pomoc.

A wygląda tak:
http://img826.imageshack.us/img826/9436/25534893.png

Ten post edytował Librai7 13.04.2012, 18:25:30
Go to the top of the page
+Quote Post
lobopol
post
Post #2





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


Najprościej użyj funkcji date aby uzyskać liczbę dni w tym miesiącu, aktualny dzień, aktualny miesiąc, aktualny dzień tygodnia. Kiedy masz już te dane wystarczy pojedyncza pętla for aby utworzyć ci aktualny kalendarz

Przy date popatrz sobie na parametry interesują ciebie konkretnie: j, N bądź w, n, t.

Go to the top of the page
+Quote Post
Librai7
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.04.2012

Ostrzeżenie: (0%)
-----


Tyle że jak już wcześniej napisałem że nie mam pojęcia o PHP, właśnie się zastanawiam nad kupnem książki. PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydanie czwarte
Go to the top of the page
+Quote Post
lobopol
post
Post #4





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


No to polecam przeczytać jakiś kurs php(na forum znajdziesz ich sporo) , tutaj gotowca nie dostaniesz. Jeżeli chcesz aby ktoś ci to wykonał musisz pisać w dziale giełda, ale za darmo to nikt ci tego raczej nie zrobi.

W gruncie rzeczy aby to zrobić wystarczy:
1 x date z wymienionymi wcześniej parametrami
1 x explode
1 x pętla for/while
i kilka prostych ifów

Ten post edytował lobopol 13.04.2012, 19:52:59
Go to the top of the page
+Quote Post
prowseed
post
Post #5





Grupa: Zarejestrowani
Postów: 433
Pomógł: 64
Dołączył: 29.01.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


http://davidwalsh.name/php-calendar
http://davidwalsh.name/php-calendar-controls
http://davidwalsh.name/php-event-calendar

dokładnie to, czego szukasz, tylko w trochę większej wersji : )
Go to the top of the page
+Quote Post
Librai7
post
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.04.2012

Ostrzeżenie: (0%)
-----


Odgrzewam temat. Zrobiłem taki skrypt:

  1. </div></div></div></div></div></div></div></div><div id="calendar-3" class="sb-bot"><div class="sb-top"><div class="sb-right"><div class="sb-left"><div class="sb-rb"><div class="sb-lb"><div class="sb-rt"><div class="sb-lt"><h2>Kalendarium wydarzeń</h2>
  2.  
  3. <?php
  4.  
  5. function dni_mies($mies,$rok) {
  6.  
  7. $dni = 31;
  8. while (!checkdate($mies, $dni, $rok)) $dni--;
  9.  
  10.  
  11. return $dni;
  12. }
  13.  
  14.  
  15. function dzien_tyg_nr($mies,$rok) {
  16.  
  17. $dzien = date("w", mktime(0,0,0,$mies,1,$rok));
  18.  
  19.  
  20. return $dzien;
  21. }
  22.  
  23. function dzien_tyg($nr) {
  24.  
  25. $dzien = array(0 => "Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota");
  26.  
  27. return $dzien[$nr];
  28. }
  29.  
  30.  
  31. function miesiac_pl($mies) {
  32.  
  33. $mies_pl = array(1=>"Stycznia", "Lutego", "Marca", "Kwietnia", "Maja", "Czerwieca", "Lipieca", "Sierpnia", "Września", "Października", "Listopada", "Grudnia");
  34.  
  35. return $mies_pl[$mies];
  36. }
  37.  
  38. ?>
  39.  
  40. <html>
  41. <head>
  42. <title>Kalendarz</title>
  43.  
  44. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  45. <meta http-equiv="content-language" content="pl" />
  46.  
  47. <style type="text/css">
  48. #kalendarz {width: 150px;}
  49. #kalendarz p {text-align: center;}
  50. #kalendarz li {display: inline; padding:1px 2px; }
  51. #kalendarz .akt {color: #990000; font-weight: bold;}
  52. #kalendarz .hidden {visibility: hidden;}
  53. </style>
  54. </head>
  55. <body>
  56.  
  57. <div id="kalendarz">
  58. <?php
  59. echo '<p>'.dzien_tyg(date("w")).',
  60. <br>
  61. '.date("d").' '.miesiac_pl(date("n")).' '.date("Y").'</p>';
  62. ?>
  63. <ul>
  64.  
  65. <th scope="col" title="niedziela"><font size="2"><b>N</b></font></th>
  66. <th scope="col" title="poniedzialek"><font size="2"><b>Pn</b></font></th>
  67. <th scope="col" title="wtorek"><font size="2"><b>Wt</b></font></th>
  68. <th scope="col" title="środa"><font size="2"><b>Śr</b></font></th>
  69. <th scope="col" title="czwartek"><font size="2"><b>Cz</b></font></th>
  70. <th scope="col" title="piatek"><font size="2"><b>Pt</b></font></th>
  71. <th scope="col" title="sobota"><font size="2"><b>So</b></font></th>
  72.  
  73. </ul>
  74.  
  75. <ul>
  76. <?php
  77. for($i=0;$i<dzien_tyg_nr(date("n"),date("Y"));$i++)
  78. echo '<li class="hidden">00</li> ';
  79.  
  80. for($i=1;$i<dni_mies(date("n"),date("Y")) +1;$i++) {
  81. if ($i<10) $i = '0'.$i;
  82. if ($i == date("d")) echo '<li class="akt">'.$i.'</li> ';
  83. else echo '<li>'.$i.'</li> ';
  84. }
  85. ?>
  86. </ul>
  87.  
  88. </div>
  89. </div>
  90.  
  91. </body>
  92. </html>


i wygląda tak:

http://img585.imageshack.us/img585/6228/kale.png

i jak widzicie mamy dziś piątek 20.04.2012 a na tablicy kalendarza podświetla się dzień 20 w poniedziałku zamiast na Pt... co zrobić żeby pobierało prawidłowo tablice miesiąca?(IMG:style_emoticons/default/questionmark.gif)

Po drugie, nie mam pojęcia jakiego kodu użyć żeby można zaznaczyć dany event w danym dniu.

Ten post edytował Librai7 20.04.2012, 19:12:37
Go to the top of the page
+Quote Post
prowseed
post
Post #7





Grupa: Zarejestrowani
Postów: 433
Pomógł: 64
Dołączył: 29.01.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Bo wyswietlasz pierwszy dzien na pierwszej pozycji tygodnia, podczas gdy nie zawsze tak jest.
Cytat
if ($i<10) $i = '0'.$i;
To troche na okolo, ale ostatecznie dziala, natomiast madrzej by bylo uzyc po prostu sprintf.
Wejdz w linki, ktore Ci podalem wyzej. Przeanalizuj sobie to wszystko, nawet przepisz i pozniej buduj na tym swoj kalendarz.
Tam wszystko jest, najprostsza funkcjonalnosc jakiej potrzebujesz. Jest rowniez lopatologicznie opisane jak pobrac zdarzenia do tablicy i je pozniej w tym kalendarzu wyswietlac.
Go to the top of the page
+Quote Post
Librai7
post
Post #8





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.04.2012

Ostrzeżenie: (0%)
-----


Dobra trochę sie pobawiłem i wyszedł mi kalendarz tak:

http://img857.imageshack.us/img857/7615/kalem.png


kod:

  1. </div></div></div></div></div></div></div></div><div id="calendar-3" class="sb-bot"><div class="sb-top"><div class="sb-right"><div class="sb-left"><div class="sb-rb"><div class="sb-lb"><div class="sb-rt"><div class="sb-lt"><h2>Kalendarium wydarzeń</h2>
  2. <center><?php
  3. echo '<p>'.dzien_tyg(date("w")).',
  4. <br>
  5. '.date("d").' '.miesiac_pl(date("n")).' '.date("Y").'</p>';
  6. ?>
  7.  
  8. <?PHP
  9. function dzien_tyg($nr) {
  10.  
  11. $dzien = array(0 => "Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota");
  12.  
  13. return $dzien[$nr];
  14. }
  15.  
  16.  
  17. function miesiac_pl($mies) {
  18.  
  19. $mies_pl = array(1=>"Stycznia", "Lutego", "Marca", "Kwietnia", "Maja", "Czerwieca", "Lipieca", "Sierpnia", "Września", "Października", "Listopada", "Grudnia");
  20.  
  21. return $mies_pl[$mies];
  22. }
  23.  
  24. function printCalendar()
  25. {
  26. $year = date("Y");
  27. $monthNum = date("n");
  28. $daysofmonth = date("t");
  29. $dayofweek = date("w");
  30. $dayofmonth = date("j");
  31. $firstdayofmonth = date("w", mktime(0,0,0,$monthNum, 1, $year));
  32.  
  33. if($dayofweek == 0) $dayofweek = 7;
  34. if($firstdayofmonth == 0) $firstdayofmonth = 7;
  35.  
  36. switch($monthNum){
  37. case 1 : $monthName = "Styczeń";break;
  38. case 2 : $monthName = "Luty";break;
  39. case 3 : $monthName = "Marzec";break;
  40. case 4 : $monthName = "Kwiecień";break;
  41. case 5 : $monthName = "Maj";break;
  42. case 6 : $monthName = "Czerwiec";break;
  43. case 7 : $monthName = "Lipiec";break;
  44. case 8 : $monthName = "Sierpień";break;
  45. case 9 : $monthName = "Wrzesień";break;
  46. case 10 : $monthName = "Październik";break;
  47. case 11 : $monthName = "Listopad";break;
  48. case 12 : $monthName = "Grudzień";break;
  49. }
  50.  
  51. echo("<TABLE border = 1><TR>");
  52. echo("<TD bgcolor=\"\" align=\"center\" colspan=\"7\">");
  53. echo($monthName." ".$year);
  54. echo("</TD></TR><TR>");
  55.  
  56. ?>
  57. <TR>
  58. <TD align="center" bgcolor="">Pn</TD>
  59. <TD align="center" bgcolor="">Wt</TD>
  60. <TD align="center" bgcolor="">Sr</TD>
  61. <TD align="center" bgcolor="">Cz</TD>
  62. <TD align="center" bgcolor="">Pi</TD>
  63. <TD align="center" bgcolor="">So</TD>
  64. <TD align="center" bgcolor="">Nd</TD>
  65. </TR>
  66. <?
  67. $j = $daysofmonth + $firstdayofmonth - 1;
  68.  
  69. for($i = 0; $i < $j; $i++){
  70. if($i < $firstdayofmonth - 1){
  71. echo("<TD bgcolor=\"\"></TD>");
  72. continue;
  73. }
  74. if(($i % 7) == 0){
  75. echo("</TR><TR>");
  76. }
  77. if(($i - $firstdayofmonth + 2) == $dayofmonth){
  78. $color = "silver";
  79. }
  80. else{
  81. $color = "";
  82. }
  83. echo("<TD bgcolor=\"$color\" align=\"center\">");
  84. echo($i - $firstdayofmonth + 2);
  85. echo("</TD>");
  86. }
  87. echo("</TR></TABLE>");
  88. }
  89. printCalendar();
  90. ?>
  91.  
  92.  


Chce wprowadzić jeszcze eventy, podałeś ten link http://davidwalsh.name/php-event-calendar ale nie mam pojęcia o co w nim chodzi. Coś ze SQL, czy muszę nową baze danych utworzyć?

Ten post edytował Librai7 22.04.2012, 12:08:05
Go to the top of the page
+Quote Post
Szymciosek
post
Post #9





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Tak, eventy będą trzymane w bazie danych.
Go to the top of the page
+Quote Post
Librai7
post
Post #10





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.04.2012

Ostrzeżenie: (0%)
-----


Oki ale jak to zrobić?
Go to the top of the page
+Quote Post
prowseed
post
Post #11





Grupa: Zarejestrowani
Postów: 433
Pomógł: 64
Dołączył: 29.01.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jak zrobić co, tabelę w bazie danych?

Jeżeli tego nie rozumiesz, to radzę Ci poczytać jakieś publikacje na temat podstaw współpracy php z mysql. Ponieważ masz tam zapytanie i na jego podstawie powinieneś się domyśleć jak ma wyglądać tabela. Jeżeli tego nie widzisz, to zwyczajnie brak Ci podstaw i nikt tego za Ciebie tu nie zrobi. Zatem google i do boju.
Go to the top of the page
+Quote Post
Librai7
post
Post #12





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.04.2012

Ostrzeżenie: (0%)
-----


Acha raczej to drugie: czyli żeby te eventy dodać do kodu który pokazałem muszę coś w nim jeszcze zamieścić, zrobić baze mysql i stworzyć tabele w niej?(IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
prowseed
post
Post #13





Grupa: Zarejestrowani
Postów: 433
Pomógł: 64
Dołączył: 29.01.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


tak.

Musisz połączyć się z bazą z poziomu php, pobrać eventy do tablicy, gdzie kluczem jest data i przekazać całą tablicę jako parametr funkcji.
Czyli dokładnie tak, jak to jest opisane w powyższym artykule.
Twoje frazy google na dziś: phpmyadmin create tables, phpmyadmin insert data, connect to database mysql+php, php mysql select, retrieve data in php from mysql
Tam znajdziesz wszystko, co jest Ci do szczęścia potrzebne.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 01:39