2010-01-05 3 views
0

J'essaie d'afficher le taux moyen et le nombre de votes, mais je ne sais vraiment pas comment le faire.JQuery & PHP - Comment afficher et obtenir le taux moyen et les votes exprimés?

J'ai besoin d'aide pour avoir l'affichage de quelque chose comme ça Rating. 4.83/5 (6725 vote cast) sous le nombre d'étoiles? Mais je ne sais vraiment pas comment faire cela ou quoi ajouter ou changer?

Voici le JavaScript ci-dessous.

// JavaScript Document 
$(document).ready(function() { 
    // get current rating 
    getRating(); 
    // get rating function 
    function getRating(){ 
     $.ajax({ 
      type: "GET", 
      url: "update.php", 
      data: "do=getrate", 
      cache: false, 
      async: false, 
      success: function(result) { 
       // apply star rating to element 
       $("#current-rating").css({ width: "" + result + "%" }); 
      }, 
      error: function(result) { 
       alert("some error occured, please try again later"); 
      } 
     }); 
    } 

    // link handler 
    $('#ratelinks li a').click(function(){ 
     $.ajax({ 
      type: "GET", 
      url: "update.php", 
      data: "rating="+$(this).text()+"&do=rate", 
      cache: false, 
      async: false, 
      success: function(result) { 
       // remove #ratelinks element to prevent another rate 
       $("#ratelinks").remove(); 
       // get rating after click 
       getRating(); 
      }, 
      error: function(result) { 
       alert("some error occured, please try again later"); 
      } 
     }); 

    }); 
}); 


Et voici le script PHP ci-dessous.


<?php 
// connect to database 
$dbh=mysql_connect ("localhost", "root", "", "sitename") or die ('Cannot connect to the database'); 
mysql_select_db ("sitename",$dbh); 

if($_GET['do']=='rate'){ 
    // do rate 
    rate(); 
}else if($_GET['do']=='getrate'){ 
    // get rating 
    getRating(); 
} 

// function to retrieve 
function getRating(){ 
    $sql= "select * from vote"; 
    [email protected]_query($sql); 
    [email protected]_fetch_array($result); 
    // set width of star 
    $rating = (@round($rs[value]/$rs[counter],1)) * 20; 
    echo $rating; 
} 

// function to insert rating 
function rate(){ 
    $text = strip_tags($_GET['rating']); 
    $update = "update vote set counter = counter + 1, value = value + ".$_GET['rating'].""; 

    $result = @mysql_query($update); 
    if(@mysql_affected_rows() == 0){ 
     $insert = "insert into vote (counter,value) values ('1','".$_GET['rating']."')"; 
     $result = @mysql_query($insert); 
    } 
} 
?> 

Voici ma table MySQL.

CREATE TABLE IF NOT EXISTS `vote` (
`counter` int(8) NOT NULL default '0', 
`value` int(8) NOT NULL default '0' 
) 

Voici le balisage d'affichage d'évaluation ci-dessous.

<ul class='star-rating'> 
    <li class="current-rating" id="current-rating"><!-- will show current rating --></li> 
    <span id="ratelinks"> 
    <li><a href="javascript:void(0)" title="1 star out of 10" class="one-star">1</a></li> 
    <li><a href="javascript:void(0)" title="2 stars out of 10" class="two-stars">2</a></li> 
    <li><a href="javascript:void(0)" title="3 stars out of 10" class="three-stars">3</a></li> 
    <li><a href="javascript:void(0)" title="4 stars out of 10" class="four-stars">4</a></li> 
    <li><a href="javascript:void(0)" title="5 stars out of 10" class="five-stars">5</a></li> 
    <li><a href="javascript:void(0)" title="6 stars out of 10" class="six-star">6</a></li> 
    <li><a href="javascript:void(0)" title="7 stars out of 10" class="seven-stars">7</a></li> 
    <li><a href="javascript:void(0)" title="8 stars out of 10" class="eight-stars">8</a></li> 
    <li><a href="javascript:void(0)" title="9 stars out of 10" class="nine-stars">9</a></li> 
    <li><a href="javascript:void(0)" title="10 stars out of 10" class="ten-stars">10</a></li> 
    </span> 
</ul> 

Répondre

Questions connexes