Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Datepicker - zaznaczanie ważnych dat
michau85
post 1.09.2015, 21:20:51
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.01.2010

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


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
Go to the top of the page
+Quote Post
trueblue
post 1.09.2015, 21:36:30
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Jaki format ma data, którą otrzymujesz w odpowiedzi z php?

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

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



--------------------
Go to the top of the page
+Quote Post
michau85
post 2.09.2015, 07:15:06
Post #3





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.01.2010

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


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?
Go to the top of the page
+Quote Post
trueblue
post 2.09.2015, 07:40:21
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


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.


--------------------
Go to the top of the page
+Quote Post
michau85
post 3.09.2015, 17:10:18
Post #5





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.01.2010

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


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.
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 Wersja Lo-Fi Aktualny czas: 20.07.2025 - 06:02