Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax] aktualizacja bazy w tle
Forum PHP.pl > Forum > XML, AJAX
szczypior
Witam.

Chciałbym zrobić (chyba dość prostą rzecz) z wykorzystaniem Ajaxu: wyświetlam liczby i przy każdej słowo (np: dodaj). Gdy kliknie się na słowo wartość odpowiadającej mu liczby zmienia się o 1 w bazie danych i na stronie bez jej przeładowywania.

Z tego co czytałem to można w tym przypadku użyć biblioteki advAJAXu.

Może zetknął się ktoś z Was z jakimś artykułem lub tuttorialem, który może mi pomóc w zrobieniu tego?
Albo jakaś podpowiedź jak się za to zabrać? smile.gif
skowron-line
advAjax czytasz sobie to tak na poczatek
a teraz moze moja podpowiedz

jezeli robisz sobie wyswietlanie liczb w tabeli to nadajesz dla kazdego wiersza unikalne id i potem w funkcji
podajesz to id i przy zdarzeniu
onSuccess robisz sobie mniej wiecej cos takiego

Kod
var oDiv = document.getElementById(id);
oDiv.innerHTML = obj.responseText;


to tak na poczatek jak bedziesz mial problem to pisz to cos poradzimy
szczypior
konkretnie to miałem na myśli coś takiego jak na wykop.pl

ja myślałem o zapisie
  1. advAJAX.post({
  2. url : "plik_aktualizujący_baze.php",
  3. parameters:{
  4.  wartosc: wartosc,
  5.  id: '<?echo $_GET['id'];?>'
  6. },
  7. onSuccess : function(obj) {
  8. }
  9. });


Można tak?
skowron-line
no okej ale jak zrobisz tak jak napisales to bedziesz musial przeladowac strone poniewaz bedziesz musial zaladowac zmienna $_GET a tak jak wywolasz sobie funkcje JS
z linka powiedzmy
Kod
<a href="java script:funkcja('parametr');">dodaj</a>

wtedy wywola sie ajax
szczypior
no fakt smile.gif

Przeładowanie konkretnej liczby mozna by zrobić przez :

Kod
opener.$(id)
tylko nie wiem jak dalej wskazać co ma być przeładowane. W znalezionym przykładnie widziałem ".style.background=kolor;" ale to odnosi się do tła tabeli.

takie wywołanie funkcji jest ok?
Kod
echo "<button onclick='powieksz(20,".$id.");'>Dodaj</button>";


funkcja powieksz() wyglądałaby mniej wiecej tak:
Kod
function powieksz(wartosc,id) {
    opener.$(id).tutaj wskazanie co ma byc przeladowane
    advAJAX.post({
            url : "zapisz.php",
            parameters: {
                wartosc: wartosc,
                id: id
            },
            onSuccess : function(obj) {
            }
   })
;}


bardzo źle ? winksmiley.jpg
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.