Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] wyświetlanie danych z bazy po najeździe na link
john_doe
post
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


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.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
r4xz
post
Post #2





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

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


http://api.jquery.com/jQuery.ajax/
Go to the top of the page
+Quote Post
prowseed
post
Post #3





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

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


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ć
Go to the top of the page
+Quote Post
john_doe
post
Post #4





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


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.

Ten post edytował john_doe 6.05.2012, 11:50:19
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%)
-----


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.
Go to the top of the page
+Quote Post
john_doe
post
Post #6





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


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
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 16:20