Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] głosowanie jak na wykop.pl, czy bash.org.pl
Forum PHP.pl > Forum > XML, AJAX > AJAX
sbvc
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!
erix
Pytanie z elementarza: czym się różni identyfikator od klasy?
sbvc
Z klasami też nie działa (wtedy nawet 1 link).
erix
Pokaż, co nie działa, czyt: jak zrobiłeś.
sbvc
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>
panjarek
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.
erix
Zlecenia, to nie ten dział. tongue.gif

Poszukaj na forum o blokowaniu nabijania odwiedzin, było trochę takich tematów.
panjarek
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ć.
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.