Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX] system głosowania
Narus
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 28.12.2009

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


Witam

Potrzebuje rozbudować swoją stronkę o prosty system głosowania. Najbardziej zależy mi na tym aby był taki jak na demotywatorach.pl
Udało mi się zrobić na razie tyle:

głosowanie:
  1. oceń: <span onclick='dobre(<?=$wiersz[id]; ?>);' class='zielony'>Plusik</span> lub <span onclick='zal(<?=$wiersz[id]; ?>);' class='czerwony'>Minusik</span> | ocena: <span class='ocena<?=$wiersz[id]; ?>'><?=$wiersz[ocena]; ?></span> (glosowano <span class='ocen<?=$wiersz[id]; ?>'><?=$wiersz[ocen]; ?></span> razy)


script.js:
  1. function dobre(id){
  2. $(".j").load("glos.php?dobre="+id);
  3. }
  4. function zal(id){
  5. $(".j").load("glos.php?zal="+id);
  6. }


glos.php(dodaje do bazy glos):
  1. <? if($dobre!="") {
  2.  
  3.  
  4. $query = mysql_query("SELECT * FROM film WHERE id='$dobre'");
  5. while( $wiersz = mysql_fetch_array( $query ) ) {
  6.  
  7. $ocena=$wiersz[ocena];
  8. $ocena++;
  9. $ocen=$wiersz[ocen];
  10. $ocen++;
  11.  
  12.  
  13. mysql_query( "UPDATE film SET ocen='$ocen', ocena='$ocena' WHERE id='$dobre' " ) or die ("Błąd SQL - Edycja przedmiotu");
  14. }
  15.  
  16. }
  17. ?>
  18.  
  19. <? if($zal!="") {
  20.  
  21.  
  22. $query = mysql_query("SELECT * FROM film WHERE id='$zal'");
  23. while( $wiersz = mysql_fetch_array( $query ) ) {
  24.  
  25. $ocena=$wiersz[ocena];
  26. $ocena--;
  27. $ocen=$wiersz[ocen];
  28. $ocen++;
  29.  
  30. mysql_query( "UPDATE film SET ocen='$ocen', ocena='$ocena' WHERE id='$zal' " ) or die ("Błąd SQL - Edycja przedmiotu");
  31.  
  32. }
  33. }
  34. ?>


A wiec na razie działa mi tylko głosowanie bez odświezania. A chcialbym aby po zagłosowaniu, bez przeładowania strony, zmieniła się ilość głosów, ocena oraz pojawił się stosowny komunikat (najlepiej nie typu alert() ).

Jakieś pomysły?

Pozdrawiam serdecznie
Go to the top of the page
+Quote Post
panjarek
post
Post #2





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 8.03.2009

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


Ja u siebie rozwiązałem to w następujący sposób : http://forum.php.pl/index.php?showtopic=124479&hl=
i działa sprawnie ( po dopisaniu części do negatywnych głosów of course )
Go to the top of the page
+Quote Post
Narus
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 28.12.2009

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


Bawiłem się własnie tym i troszkę średnio mi wychodziło, ponieważ nie do końca rozumiem ten zapis:

  1. $.ajax({
  2. type: 'GET',
  3. url: href,
  4. success: function() {
  5. rating_div.html("Głos został oddany!");
  6. },
  7. error: function (XMLHttpRequest, textStatus, errorThrown) {
  8. rating_div.html('Error!');
  9. }
  10. });


jak tu mam odniesc sie do glos.php w ktorym mam zapisaną operacje na bazie i jak mam zaktualizowac ilosc glosów i ocene?
i po co te rating_div.html?

edit:

Skorzystałem z kodu podanego przez 'panjarek'.
Głosowanie działa, zlicza do msql głosy, jednak chciałbym aby aktualizowało na stronie ilość głosów i ocene. Tak więc aby wyczytywało z bazy ilość głosów lub żeby (najprościej) pobrało z pliku glos.php.

Ma ktoś pomysł? ;>

Ten post edytował Narus 28.12.2009, 23:49:03
Go to the top of the page
+Quote Post
rafalw
post
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 11.12.2009

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


w skrypcie php po kazdym mozliwym wyjatku dopisz zeby zwracalo ilosc glosow (w formie tekstu). odbierz ta wartosc w JS i popzrez innerHTML podmien (IMG:style_emoticons/default/smile.gif)

UP

aha, to jquery, wiec zamaist innerhtml jakis odpowiednik tego w jq, nie znam ise na tym

Ten post edytował rafalw 29.12.2009, 01:55:04
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: 10.06.2026 - 23:50