Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jquery] głosowanie jak na wykop.pl, czy bash.org.pl, Problem dosyć prosty
sbvc
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.06.2007

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


Witam. Od 2 dni nie mogę zrobić na swojej stronie głosowania linkiem bez przeładowania, tak jak jest np. na basg.org.pl lub wykop.pl

W kodzie html mam 2 linki, których adres pod href musi być wykonany. Przydzieliłem im id: good i bad. Jest kilkanaście boksów z tymi linkami (oczywiście w każdym jest oceniana inna treść).
Poniższy kod jquery działa tylko dla pierwszego boksu, a dla następnych jest normalne przekierowanie do strony w linku:
Kod
function rating() {
   var good = $('#good');
   var bad = $('#bad');
   var rating_span = $('#rating');

   good.bind("click", function(e) {
      var goodHref = good.attr('href');
      rating_span.fadeOut("normal");

      $.ajax({
      type: 'GET',
      url:  goodHref,
      success: function() {
         rating_span.html("Głos został oddany!");
         rating_span.fadeIn("normal");
      },
      error: function (XMLHttpRequest, textStatus, errorThrown) {
         rating_span.html('Error!');
         rating_span.fadeIn("normal");
      }
      });


      return false;
   });
  
   bad.bind("click", function(e) {
      var badHref = bad.attr('href');
      rating_span.fadeOut("normal");

      $.ajax({
      type: 'GET',
      url:  badHref,
      success: function() {
         rating_span.html("Głos został oddany!");
         rating_span.fadeIn("normal");
         $('.content_box').fadeOut(1000);
      },
      error: function (XMLHttpRequest, textStatus, errorThrown) {
         rating_span.html('Error!');
         rating_span.fadeIn("normal");
      }
      });
      
      return false;
   });

}
$(document).ready(function() { rating(); });


Proszę o pomoc! Chciałbym aby wszystkie linki (nie tylko pierwszy) się wysyłały bez przeładowania. Z tego co podglądałem na wcześniej wspomnianych stronach nie trzeba odnośnikom żadnych dodatkowych id podklejać, wystarczyło to samo dla wszystkich.
Z góry dziękuję za pomoc!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Pytanie z elementarza: czym się różni identyfikator od klasy?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
sbvc
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.06.2007

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


Z klasami też nie działa (wtedy nawet 1 link).
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Pokaż, co nie działa, czyt: jak zrobiłeś.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
sbvc
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.06.2007

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


Dzięki za chęć pomocy, ale ktoś mi już podpowiedział jak to zrobić na innym forum.
Gdyby ktoś potrzebował to podaje przykładowy kod:
Kod
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script>
  $(document).ready(function(){
     $(".vote-good").click(function(){
        var href = $(this).attr("href");
        var althref = $(this).attr("alt");
        var vote = $(this).hasClass("vote-good") ? 1 : -1;
        var rating_div = $('.rating-'+althref);

        $.ajax({
        type: 'GET',
        url:  href,
        success: function() {
           rating_div.html("Głos został oddany!");
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
           rating_div.html('Error!');
        }
        });
        
        return false;
     });
  });
  </script>
</head>
<body>
  <div class="rating-2">
    <h3>Tytuł</h3>
    <a href="rating.php?r=bad&id=2" alt="2" class="vote-bad">Słabe</a>
    <a href="rating.php?r=good&id=2" alt="2" class="vote-good">Dobre</a>
  </div>
  <div class="rating-22">
    <h3>Tytuł</h3>
    <a href="rating.php?r=bad&id=22" alt="22" class="vote-bad">Słabe</a>
    <a href="rating.php?r=good&id=22" alt="22" class="vote-good">Dobre</a>
  </div>
</body>
</html>
Go to the top of the page
+Quote Post
panjarek
post
Post #6





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

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


Jeżeli skrypt działa to mi się przyda i za chwilę go wykorzystam ale mógłby ktoś dodać do niego fragment dzięki któremu z danego adresu IP będzie można głosować na jeden tekst tylko raz?
Przy próbie ponownego oddania głosu pojawi się jakiś napis.
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Zlecenia, to nie ten dział. tongue.gif

Poszukaj na forum o blokowaniu nabijania odwiedzin, było trochę takich tematów.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
panjarek
post
Post #8





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

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


Gdzie i jak wstawić funkcję z ciasteczkami dzięki której blokowane będzie kilkukrotne oddawanie głosu na jeden tekst?
Proszę o pomoc bo nie mam pojęcia jak to rozwiązać.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 03:40