Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Ajax?][php][mysql] LINK + inkrementacja wartości
Forum PHP.pl > Forum > XML, AJAX > AJAX
Koldy
Witam,

Mamy sobie taki odnośnik:
LINK (xx)

Po kliknięciu na niego, wartość się inkrementuje (baza danych) i zwraca nowy wynik.
LINK(xx+1)

Czyli:
Wysyłamy zapytanie o pobranie wartości.
Inkrementacja wartości.
Wyświetlenie nowej wartości.


O, coś ala np. 'Mocne' na demotywatorach.

Ogólnie to nie sprawiłoby mi problemu, gdyby nie to, że ma się to odbyć bez przeładowania strony.
Nie mam pojęcia nawet jak się zabrać do tego. Wszystko już zrobiłem, tylko tego nie mogę...

Pomożecie?
everth
Na jQuery -
[JAVASCRIPT] pobierz, plaintext
  1. $('a.moje_odnosniki').click(function(e) {
  2. e.preventDefault(); //powstrzymuje przed przeładowaniem strony
  3. href = $(this).attr('href'); // adres klikniętego linka
  4. $.get(href); //wykonuje zapytanie poprzez ajax
  5. }
[JAVASCRIPT] pobierz, plaintext

Piszesz do tego linki z odpowiednio dopasowanymi parametrami, a po stronie skryptu kod inkrementujący i powinno hulać. Od biedy da się to zapisać również w czystym JSie - tylko trochę więcej pisania i testowania.
Koldy
To jeszcze takie pytanie, czy używając jQuery strona nie straci na wydajności?

No i tam gdzie dałeś href, to rozumiem, że ma być link, ale później, piszesz, że zapytanie ajax. Chodzi tu o zapytanie MySQL przez Ajax, czy wykonanie kodu zawartego w pliku, który wskazałem w herf?

Sory, ale AJAX to czarna magia dla mnie.
everth
Ech, tam zamiast zapytanie, powinno być żądanie - byłoby mniej problemów z interpretacją. Zobacz na poniższy przykład:
  1. <a href='increment.php?id=1' class='moje_odnosniki'>Link 1 (<span>1</span>)</a>
  2. <a href='increment.php?id=2' class='moje_odnosniki'>Link 2 (<span>1</span>)</a>

Przy założeniu że skrypt increment.php inkrementuje konkretny link w bazie (o numerze ID) i zwraca jego nową wartość to skrypt mógłby wyglądać tak:
[JAVASCRIPT] pobierz, plaintext
  1. $('a.moje_odnosniki').click(function(e) {
  2. e.preventDefault(); //powstrzymuje przed przeładowaniem strony
  3. myObj = $(this); //nasz link
  4. href = myObj.attr('href'); // adres klikniętego linka
  5. $.get(href, function(new_val) { //wykonuje żądanie poprzez ajax
  6. // tutaj przypisujesz zróconą wartość jakiemuś elementowi - może być umieszczona np. w linku w elemencie span
  7. $('span',myObj).text(new_val);
  8. });
  9. }
[JAVASCRIPT] pobierz, plaintext
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.