Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] wyświetlanie danych z bazy po najeździe na link
Forum PHP.pl > Forum > Po stronie przeglądarki
john_doe
Witam,

tworzę sobie dynamicznie kalendarz. Do kalendarza, do danego dnia mogę przypisać zdarzenia.

wygląda to tak dla przykładu

http://jsfiddle.net/6Bw7E/3/

Chciałbym aby po najechaniu na dzień, który posiada jakieś wpisy w divie pokazać te wpisy.

Przygotowałem metodę w kontrolerze która potrafi wyrzucić te dane ( kod js w jsfiddle )
czyli mam metode show_entries, która musiałaby przyjąć trzy arg. dzien, miesiac, rok.
Nie wiem jak wywołać to w jQuery. Mogę przygotować taki link po najechaniu na cyfrę dnia-> ale mam pustkę jak to przekazać do JS.

pozdrawiam.

r4xz
http://api.jquery.com/jQuery.ajax/
prowseed
po stronie klienta (musisz to sobie zamienic na onmouseover, ew hover; mimo wszystko wydaje mi sie, ze click jest madrzejszym rozwiazaniem):
  1. $('.event').click(function() {
  2. $('#message').hide(0);
  3. var a = $(this).attr('id');
  4. $.ajax({
  5. type : 'POST',
  6. url : 'info.php',
  7. dataType : 'json',
  8. data: {
  9. dateid : a
  10. },
  11. success : function(data){
  12. $('#message').html(data.msg + '<br><a href="#" class="close-message">Zamknij</a>').show(100);
  13. $(".close-message").on("click", function(){
  14. $('#message').hide(300);
  15. return false;
  16. });
  17. },
  18. error : function(XMLHttpRequest, textStatus, errorThrown) {
  19. $('#message').text('Wystąpił błąd z połączeniem.').show(300);
  20. }
  21. });
  22. });

kazde pole przy generowaniu ma swoje unikalne id, ktore w najprostszym wypadku moze byc data na wzor mysql'owego typu DATE, jest ona przekazywana do pliku info.php
  1. <?php
  2.  
  3. //polaczenie z baza
  4.  
  5. $cos = $_POST['dateid'];
  6.  
  7. //zapytanie do bazy na wzor "SELECT ... FROM ... WHERE `kiedy` LIKE DATE(\"{$cos}\")"
  8. //wyplucie wynikow
  9.  
  10. $return['msg'] = $wynik;
  11.  
  12. echo json_encode($return);


powinno grać
john_doe
dzięki za tip.
elegancko udało się.

mam jeszcze mały problem

http://jsfiddle.net/6Bw7E/19/

po najechaniu na dzień, w którym są wpisy pojawiają mi się wszystkie divy ( które mają zawierać wpisy ) a nie tylko jeden.

co mam nie tak?

próbowałem też pobrać pozycję ( position() ), i na jej podstawie ustawiać odpowiednio jednego diva. Ale ta funkcja tak jakby dziwne współrzędne podaje.
prowseed
Ale jak Ty to zrobiles? Źle : )
Każdy dzień ma mieć klasę event i swoje unikalne id, wiec jak generujesz dni w petli, to przykladowy powinien wygladac tak:
  1. <div id="calendar-container">
  2. ...
  3. <div class="event" id="2012-05-06">6</div>
  4. ...
  5. </div>

id nie moze sie zaczynac od cyfry, wiec jesli chcesz byc zgodny ze specyfikacja, to zrob "dzien+2012-05-06" i zrob np explode po plusie.
john_doe
ok, mam już. dzięki.

w jsfiddle trochę okroiłem dla celów przykładu.

w jQuery użyłem offset() i mouseover and out.

offset daje mi koordynaty, które sobie modyfikuję i za pomocą .css() zmieniam i jest super.

dzięki prowseed
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.