user3158320
user3158320

Reputation: 33

Transform an option list into stars

I'm using this part of code to rate some articles that i formed from MySQL. Rate is done my an option list where someone can rate them with numbers 1,2,3. It is possible to transform somehow this list into 3 stars (with radio buttons, images or something)?

<form id="ratethis-<?=$PK?>" action="rate.php?idP=<?=$idPK?>"method="post">
 <select name="rating">

 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 </select> <br> 
 <input type="submit" value="Rate this!"/><br><br>
 </form>

Upvotes: 1

Views: 2182

Answers (2)

agastalver
agastalver

Reputation: 1056

On html:

<ul class="rating">
<span class="strong"><strong><li class="one"><a href="#">1 Star</a></li></strong></span>
<span class="strong"><strong><li class="two"><a href="#">2 Stars</a></li></strong></span>
<span class="strong"><strong><li class="three"><a href="#">3 Stars</a></li></strong></span>
<span class="strong"><strong><li class="four"><a href="#">4 Stars</a></li></strong></span>
<span class="strong"><strong><li class="five"><a href="#">5 Stars</a></li></strong></span>
</ul>

On CSS:

.rating {

margin: 0;

padding: 0;

list-style: none;

clear: both;

width: 75px;

height: 15px;

background-image: url(stars.gif);

background-repeat: no-repeat;

position: relative;

}

.rating li {

text-indent: −9999em;

float: left; /* for IE6 */

}

.rating li a {

position: absolute;

top: 0;

left: 0;

z-index: 20;

height: 15px;

width: 15px;

display: block;

}

.rating .one a {

left: 0;

}

.rating .two a {

left: 15px;

}

.rating .three a {

left: 30px;

}

.rating .four a {

left: 45px;

}

.rating .five a {

left: 60px;

}

Maybe this link could be helpful:

How to create a star ranking system using css

Upvotes: 2

giorgio
giorgio

Reputation: 10212

Yeah sure, options are numerous:

  1. Just use oldskool links:

    <a href="rate.php?idP=<?php echo $idPK; ?>&rating=1"><img src="star.jpg" /></a>
    <a href="rate.php?idP=<?php echo $idPK; ?>&rating=2"><img src="star.jpg" /></a>
    <a href="rate.php?idP=<?php echo $idPK; ?>&rating=3"><img src="star.jpg" /></a>
    

    Make sure you get the rating from $_GET instead of $_POST though

  2. Use javascript (jquery in this example):

    <img src="star.gif" class="rating" rel="1" />
    <img src="star.gif" class="rating" rel="1" />
    <img src="star.gif" class="rating" rel="1" />
    
    $('.rating').on('click', function() {
        $.post('rate.php?idP=<?php echo $idPK; ?>', {rating: $(this).attr('rel') }, function() { alert('rating saved'); }
    });
    
  3. Be creative and post some code

Upvotes: 0

Related Questions