Volevo implementare il mio E-Commerce con recensioni e votazione da parte dell'utente... Ho fatto una ricerca in rete riguardo il "rating" a stelle e c'è un fiume di informazioni e servizi anche gratuiti; ma come al solito le cose me le voglio fare io!
Allora senza per perder tempo ecco una paginetta molto semplificata per appunto far capire il funzionamento, tra l'alto banale, della votazione a stelle.
Ho utilizzato la fonte CDN di Font Awersome per "disegnare" le stelle, quindi senza far ricorso a nessun file di tipo immagine, il CDN lo vedete nel codice: font-awesome.min.css.
Quindi con:
mi vado a costruire la stella, le 5 stellette della votazione a loro volta le ho racchiuse in un tag span e sfruttando il suo id "stella" mi vado a "costruire" a seconda del click dell'utente sulla stella la conformazione stella piena con le funzione javascript
Al click
All'interno del tag span con id stella, viene richiamata la funzione facendo apparire la giusta votazione.
Un pizzico di css per il colore e la posizione delle stelle e il resto a voi...
Ovviamente il voto non viene memorizzato, per farlo useremo PHP con MySql, questo lo farò nel prossiomo snippet nella sezione PHP.
Per domande o chiarimenti rimango a disposizione, ecco l'intera pagina.
Ciao
Allora senza per perder tempo ecco una paginetta molto semplificata per appunto far capire il funzionamento, tra l'alto banale, della votazione a stelle.
Ho utilizzato la fonte CDN di Font Awersome per "disegnare" le stelle, quindi senza far ricorso a nessun file di tipo immagine, il CDN lo vedete nel codice: font-awesome.min.css.
Quindi con:
Codice:
<i class="fa fa-star-o"></i>
Codice:
function star1()
Codice:
onclick="star1()"
Codice:
document.getElementById("star").innerHTML = "<input type='radio' name='rating' value='1' checked style='display:none'><i class='fa fa-star' onclick='star1()'></i><i class='fa star fa-star-o' onclick='star2()'></i><i class='fa star fa-star-o' onclick='star3()'></i><i class='fa star fa-star-o' onclick='star4()'></i><i class='fa star fa-star-o' onclick='star5()'></i>";
Ovviamente il voto non viene memorizzato, per farlo useremo PHP con MySql, questo lo farò nel prossiomo snippet nella sezione PHP.
Per domande o chiarimenti rimango a disposizione, ecco l'intera pagina.
Ciao
HTML:
<html>
<head>
<!-- Rating con Font Awesome e javascript By FiloWebService.com-->
<script>
function star1(){
document.getElementById("star").innerHTML = "<input type='radio' name='rating' value='1' checked style='display:none'><i class='fa fa-star' onclick='star1()'></i><i class='fa star fa-star-o' onclick='star2()'></i><i class='fa star fa-star-o' onclick='star3()'></i><i class='fa star fa-star-o' onclick='star4()'></i><i class='fa star fa-star-o' onclick='star5()'></i>";
}
function star2(){
document.getElementById("star").innerHTML = "<input type='radio' name='rating' value='2' checked style='display:none'><i class='fa fa-star' onclick='star1()'></i><i class='fa star fa-star' onclick='star2()'></i><i class='fa star fa-star-o' onclick='star3()'></i><i class='fa star fa-star-o' onclick='star4()'></i><i class='fa star fa-star-o' onclick='star5()'></i>";
}
function star3(){
document.getElementById("star").innerHTML = "<input type='radio' name='rating' value='3' checked style='display:none'><i class='fa fa-star' onclick='star1()'></i><i class='fa star fa-star' onclick='star2()'></i><i class='fa star fa-star' onclick='star3()'></i><i class='fa star fa-star-o' onclick='star4()'></i><i class='fa star fa-star-o' onclick='star5()'></i>";
}
function star3(){
document.getElementById("star").innerHTML = "<input type='radio' name='rating' value='3' checked style='display:none'><i class='fa fa-star' onclick='star1()'></i><i class='fa star fa-star' onclick='star2()'></i><i class='fa star fa-star' onclick='star3()'></i><i class='fa star fa-star-o' onclick='star4()'></i><i class='fa star fa-star-o' onclick='star5()'></i>";
}
function star4(){
document.getElementById("star").innerHTML = "<input type='radio' name='rating' value='4' checked style='display:none'><i class='fa fa-star' onclick='star1()'></i><i class='fa star fa-star' onclick='star2()'></i><i class='fa star fa-star' onclick='star3()'></i><i class='fa star fa-star' onclick='star4()'></i><i class='fa star fa-star-o' onclick='star5()'></i>";
}
function star5(){
document.getElementById("star").innerHTML = "<input type='radio' name='rating' value='5' checked style='display:none'><i class='fa fa-star' onclick='star1()'></i><i class='fa star fa-star' onclick='star2()'></i><i class='fa star fa-star' onclick='star3()'></i><i class='fa star fa-star' onclick='star4()'></i><i class='fa star fa-star' onclick='star5()'></i>";
}
</script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<style>
#star{cursor:pointer}
.star{margin-left:5px}
.rating-wrap{position:absolute;left:50%;top:10%}
.fa{color:#FAAA3C}
</style>
<head>
<body>
<div class="rating-wrap">
<p><strong>Dai un voto:</strong></p>
<span id="star"><i class="fa fa-star-o" onclick="star1()"></i>
<i class="fa fa-star-o" onclick="star2()"></i>
<i class="fa fa-star-o" onclick="star3()"></i>
<i class="fa fa-star-o" onclick="star4()"></i>
<i class="fa fa-star-o" onclick="star5()"></i>
</span><!--costruisce con javascript l'input radio per valorizzare le stelle-->
</div>
</body>
</html>