Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Datepicker - zaznaczanie ważnych dat
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
michau85
Witajcie.
Chcę zaznaczyć ważne daty w kalendarzu pobierając je z bazy. Mam taki kod:
  1.  
  2.  
  3. $.getJSON(
  4. 'dane.php',
  5.  
  6. function(data){
  7.  
  8. var zle=''
  9. var tab=[]
  10. var date = new Date()
  11. var disabledDays=[]
  12.  
  13. for(var j=0;j<data.length;j++)
  14. {
  15. var cy=data[j]['data']
  16. var ro= cy.slice(0,4)
  17. var mi=cy.slice(6,7)
  18. var dzi=cy.slice(8,10)
  19. zle=ro+'-'+mi+'-'+dzi
  20. disabledDays.push(zle)
  21. }
  22.  
  23. $( "#kalendarz").datepicker({
  24. dateFormat: 'yy-mm-dd',
  25. beforeShowDay: function(date) {
  26. var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
  27. for ( var i = 0; i < disabledDays.length; i++) {
  28. if($.inArray(y + '-' + (m+1) + '-' + d,disabledDays) != -1) {
  29.  
  30. return [true, 'hi');
  31. }
  32. }
  33. return [true];
  34.  
  35. }
  36. });
  37.  
  38.  
  39. }
  40.  
  41.  
  42. )
  43.  
  44. })
  45.  
  46.  
  47.  


Kod ten działa tylko jeśli do disabledDays wstawię "sztywne" daty. W tej sytuacji nie wyświetla się nic. Kalendarz pokazuje się dopiero po usunięciu beforeShowDay. Wydaje mi się że dane JSON również pobieram dobrze (tzn dobrze wyglądają w przeglądarce). Proszę o pomoc
trueblue
Jaki format ma data, którą otrzymujesz w odpowiedzi z php?

Co to jest?
return [true, 'hi');

P.S. Po co tak: return [true]?

michau85
Cytat(trueblue @ 1.09.2015, 22:36:30 ) *
Jaki format ma data, którą otrzymujesz w odpowiedzi z php?

Co to jest?
return [true, 'hi');

P.S. Po co tak: return [true]?


W bazie jest typ date. Jako JSON dostaje chyba jednak string, bo mogę stosować slice().

Metoda beforeShowDay zwraca funkcję z taklimi arggumentami. True określa, że date można zaznaczyć, a hi to nazwa klasy css która odpowiada za wyróżnienie "ważnej" daty.

Niestety dokumentacja jquery datepicker nie jest dla mnie zbyt precyzyjna. Skrypt ten znalazłem w internecie. Wszystko działa pod warunkiem, że daty są sztywne z góry określone. Przy pobieraniu z bazy nie działa.

Może ktoś z Was poleci mi inną bibliotekę jquery kalendarz, która da się wykonać tą funkcjonalność szybciej?
trueblue
Pokaż przykładową datę, którą otrzymujesz w odpowiedzi z php.

Ponawiam pytanie:
Co to jest?
return [true, 'hi');

Jeśli nie poprawisz takiego błędu, to nie ma sensu abyś szukał innej biblioteki.
michau85
Cytat(trueblue @ 2.09.2015, 08:40:21 ) *
Pokaż przykładową datę, którą otrzymujesz w odpowiedzi z php.

Ponawiam pytanie:
Co to jest?
return [true, 'hi');

Jeśli nie poprawisz takiego błędu, to nie ma sensu abyś szukał innej biblioteki.


Metoda beforeShowDay zwraca funkcję z takimi argumentami. True określa, że datę można zaznaczyć, a hi to nazwa klasy css która odpowiada za wyróżnienie "ważnej" daty.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.