
Pomijam fakt, że w sieci brak zgrabnego gotowca (jQuery, AJAX, PHP5.6) najprostszego systemu głosowania +/- 1 dla np. komentarza. (albo nie umiem szukać)
Na podstawie kilkunastu różnych kodów z Internetu zlepiłem jeden funkcjonalny skrypt, który (po kliknięciu) ma za zadanie:
1. przyznać ocenę +1 (tj. zwiększyć zawczasu, sztucznie licznik aktualnej oceny +1)
a) wysłać ID_komentarza z rodzajem_oceny(+/-) do PHP i tam po weryfikacji zrobić Update SQL (po stronie PHP brak problemów)
2. sformatować kolorystycznie kliknięty button "plus" oraz usunąć możliwość kliknięcia w button "minus" za pomocą display:none;
3. wrzucić ocenionego komentarza (tj. ID_komentarza) do localStorage, żeby user wiedział co już ocenił.
4. sprawdzić ID_komentarza z localStorage i jeśli istnieje, to sformatować kolorystycznie na stałe. (tj. do czasu usunięcia pamięci lokalnej www)
Generalnie wszystko działa dla jednego komentarza. Siedziałem nad tym dwa dni i jestem pewny, że można to zrobić znacznie lepiej, ale składnia i jej logika mnie dobija więc będę wdzięczny za naprowadzenie w jaki sposób edytować kod, aby wrzucić w jakąś

$(document).ready(function() { $('.punkt').click(function () { if ($(this).hasClass("current")) { // $("#1 .suma").text("Zagłosowano."); } else { var id_koment = $(this).parent("div").attr("id"); var rodzaj = $(this).attr("class"); var error = false; //formatowanie if ($(this).hasClass("plus")) { $("#1 .1").css("color", "green"); $("#1 .1").css("font-weight", "bold"); $("#1 .0").css("display", "none");//likwiduje minusa //plus jeden var suma = +$("#1 .sumai").val() + 1; $("#1 .sumai").val(suma); //zapisanie na local localStorage.setItem('id_koment', id_koment); //update $.ajax({ type: "POST", url: "db.php", data: { id_koment: id_koment, rodzaj: rodzaj, } }).done(function (data) { console.log(data); }); } else if($(this).hasClass("down")) { alert("głos -1"); } //removes all the votes $(this).parent("div").children().removeClass("current"); if(!error) { $(this).addClass("current"); } else { alert("jakis problem...."); } } return false; }); }); <div id="1" class="idkom1"> <a class="punkt plus" href="#"> <div class="1">plus +</div> </a> <div class="suma"> <input class="sumai" type="number" value="12"> </div> <a class="vote down" href="#"> <div class="0">minus -</div> </a> </div> var pobieramid = JSON.parse(localStorage.getItem("id_koment")); $("#"+pobieramid+" .plus").removeClass("plus"); //usuwam mozliwosc dodania kolejnej wartosci +1 $("#"+pobieramid+" .0").css("display", "none");//likwiduje minusa $("#"+pobieramid+" .1").css("color", "red"); $("#"+pobieramid+" .1").css("font-weight", "bold");