![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 5.12.2019 Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
Znalazłem najprostszy skrypt Star rating na stronie
Mam pytanie odnośnie tego w jaki sposób wyświetlić ocenę z bazy danych tzn: Mam ocenę 5 gwiazdek i jedyna możliwość jaka przychodzi mi do głowy aby to wyświetlić to:
I tutaj pojawia się pytanie odnośnie tego jak to poprawnie zrobić ponieważ chciałbym po najechaniu myszką zaznaczały się gwiazdki a jeśli zrobię to na sztywno jak wyżej nie mam takiej możliwości. Index
main.js
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Do stylowania gwiazdek służy klasa star-checked co wyraźnie widać w pliku main.js, a nie style inline jak to zrobiłeś.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 5.12.2019 Ostrzeżenie: (0%) ![]() ![]() |
Do stylowania gwiazdek służy klasa star-checked co wyraźnie widać w pliku main.js, a nie style inline jak to zrobiłeś. Dzięki, poprawiłem możesz mi jeszcze wyjaśnić jak najprościej wyświetlić to w ajax?
Ponieważ jeśli użyję zwykłego php i najadę i wyjadę po za to gwiazdki przestają się wyświetlać, wydaje mi się że problemem jest tutaj to że idzie to php? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Kiedy wyjedziesz poza gwiazdki, to najzwyczajniej mysz nie jest nad żadną z nich, dlatego też nie podświetlają się.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 5.12.2019 Ostrzeżenie: (0%) ![]() ![]() |
Dlatego pytam czy jeśli zrealizuję to za pomocą ajax to będzie tak jak powinno?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A uważasz, że kiedy zrealizujesz to za pomocą ajax, to nie zdarzy Ci się przesunąć myszy poza gwiazdki?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 5.12.2019 Ostrzeżenie: (0%) ![]() ![]() |
Sądziłem że jeśli zrobię to ajaxem to po wyjechaniu znów się pojawi zaznaczenie takie jak było, ale z tego co mówisz chyba źle myślę.
W takim razie możesz mi wyjaśnić jak jest realizowane zapamiętywanie tych gwiazdek?
Jeśli możesz spójrz na przykład drugi, jeśli zaznaczysz 3 gwiazdki i wyjedziesz to dalej jest 3 gwiazki chyba że klikniesz np. 4 chciałbym wiedzieć w jaki sposób mogę to zrealizować ponieważ mam bazę wybieram gwiazdki i chciałbym żeby się pojawiły np. znów 4 gwiazdki po wyjechaniu jeśli nie zmieniłem oceny. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Co innego to najechanie/zjechanie, a co innego zaznaczanie.
Podczas kliknięcia należy zapisać ilość gwiazdek, a przy wyświetlaniu pobrać tą wartość i zaznaczyć odpowiednią ilość gwiazdek (klasa star-checked). |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 5.12.2019 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem coś takiego
//remove the star checked class when mouseout $('.star').removeClass('star-checked'); //get raiting star with db var rating=document.getElementById("hiddenstar").value; if (rating === 0){ document.getElementById("div").innerHTML = " <div id='star-container'> <i class='fa fa-star fa-2x star ' id='star-1'></i> <i class='fa fa-star fa-2x star ' id='star-2'></i> <i class='fa fa-star fa-2x star ' id='star-3'></i> <i class='fa fa-star fa-2x star ' id='star-4'></i> <i class='fa fa-star fa-2x star ' id='star-5'></i> <i class='fa fa-star fa-2x star ' id='star-6'></i> </div>"; } Może ktoś wyjaśnić w jaki sposób to obsłużyć jeśli myszka po za gwiazdką wyświetl zaznaczone np. 3 gwiazdki na podstawie pola hiddenstar jeśli oneclick to zostaje oneclick. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli wartość w bazie wynosi 3, to trzem pierwszym gwiazdkom nadajesz klasę star-checked.
Po co jakieś dziwne kombinacje z JS, skoro możesz to zrobić w PHP? A jeśli nawet nie w PHP, to po co tworzyć całą strukturę (poprzez zmianę innerHTML), skoro wystarczy nadać klasy poprzez classList.add? Co jest niezrozumiałego dla Ciebie w dodawaniu klasy do elementu? |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 5.12.2019 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem to jak najbardziej że wystarczy dodać klasę i będzie zaznaczona odpowiednia gwiazdka. Tutaj chodzi mi o możliwość edycji oceny tzn: Mam plik edycja i jeśli wybiorę to za pomocą php i wyjadę po za gwiazdki to niestety zaznaczenie się kasuję mimo że nie zmieniłem oceny. Dlatego pytam w jaki sposób można rozwiązać ten problem. Aby pojawiło się zaznaczenie po wyjechaniu po za gwiazdki(odczytane z bazy)
Wiem że można usunąć
ale wtedy wcale nie będzie usuwało zaznaczenia... Chodzi o jak najprostsze rozwiązanie |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Na zdarzenie click ustawiasz wartość zmiennej abc na liczbę gwiazdek.
W zdarzeniu mouseout ustawiasz taką liczbę gwiazdek jaką ma wartość zmiennej abc. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 5.12.2019 Ostrzeżenie: (0%) ![]() ![]() |
Przerasta to moje możliwości jeśli chodzi o js ale dziękuje za pomoc.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 11:41 |