sql >> Database teknologi >  >> RDS >> Mysql

Jquery stjernevurdering tutorial ved hjælp af php og mysql

Dette er en meget enkel og hurtig vejledning om, hvordan man opretter stjernebedømmelser meget nemt ved hjælp af jquery. Og butiksbesøgende stemmer i databasen for at vise produktpopularitet. Dette er et eksempelscript, her brugte jeg ikke særlig god brugergrænseflade, jeg fokuserer bare på at skabe dynamisk stjernebedømmelsesfunktion ved hjælp af PHP og Mysql.

Jeg har oprettet en prøvedatabase, hvor besøgende stemmer vil blive lagret, og ved hjælp af disse stemmer vil jeg vise gennemsnitlig vurdering af produktet, script oprettet i Core PHP og Mysql, så du nemt kan integrere i dit webbaserede projekt.




Eksempel på struktur for vurderingstabel.

CREATE TABLE IF NOT EXISTS `rating` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `product_id` int(11) NOT NULL,
  `vote` float NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1

I denne tutorial brugte jeg et jquery-stjernerating-plugin til at vise stjerneklassificering som UI-del, du kan udforske flere UI-vurderingsfunktioner med dette officielle rating-plugin. Det understøtter også bootstrap-responsive funktion.
http://www.jqueryrain.com/?d8VUtmAN

Opret prøve-UI-fil med nogle demoprodukter, og dens vurdering.

 <table border=1>
 <tr><td >
    <img src="img/p1.jpeg">
    <h3>Product-1</h3> 
   <input value="0" type="number" class="rating" min=0 max=5 step=0.1 data-size="md" data-stars="5" productId=1>
        </td>
   <td> 
   <img src="img/p2.jpeg"> 
     <h3>Product-2</h3> 
    <input value="0" type="number" class="rating" min=0 max=5 step=0.1 data-size="md" data-stars="5" productId=2>
    </td>
    </tr></table>

Herefter skal du inkludere de nødvendige vurderingsbiblioteker (css &js).

 <link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet">
<link href="css/star-rating.min.css" media="all" rel="stylesheet" type="text/css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <script src="js/star-rating.min.js" type="text/javascript"></script>

Anvend jquery-kode, når en bruger giver bedømmelse til produktet, så vil en ajax-anmodning gå til serveren med produkt-id og givet stemme, og du skal gemme disse værdier i din database.

<script type="text/javascript">
        $(function(){
               $('.rating').on('rating.change', function(event, value, caption) {
                productId = $(this).attr('productId');
                $.ajax({
                  url: "rating.php",
                  dataType: "json",
                  data: {vote:value, productId:productId, type:'save'},
                  success: function( data ) {
                     alert("rating saved");
                  },
              error: function(e) {
                // Handle error here
                console.log(e);
              },
              timeout: 30000  
            });
              });
        });
    </script>

Opret serverfil rating.php , Hvor du vil skrive funktionen Gem og hent vurdering.

<?php
function connect() {
$hostname = "localhost";
$username = "root";
$password = "root";
$dbname = "test";
  $con = mysqli_connect($hostname, $username, $password, $dbname);	
  return $con;
}
 
function getRatingByProductId($con, $productId) {
	$query = "SELECT SUM(vote) as vote, COUNT(vote) as count from rating WHERE product_id = $productId";
 
      $result = mysqli_query($con, $query);
      $resultSet = mysqli_fetch_assoc($result);
      if($resultSet['count']>0) {
      	$data['avg'] = $resultSet['vote']/$resultSet['count'];
      	$data['totalvote'] = $resultSet['count'];
      } else {
      	$data['avg'] = 0;
      	$data['totalvote'] = $resultSet['count'];
      }
      return $data;
 
}
if(isset($_REQUEST['type'])) {
	if($_REQUEST['type'] == 'save') {
		$vote = $_REQUEST['vote'];
		$productId = $_REQUEST['productId'];
	      $query = "INSERT INTO rating (product_id, vote) VALUES ('$productId', '$vote')";
	      // get connection
	      $con = connect();
	      $result = mysqli_query($con, $query);
	      echo 1; exit;
	} 
}
 
?>



Se live demo og download kildekode.

DEMO

DOWNLOAD

Håber denne tutorial vil være nyttig til at lave et ratingsystem til dine webbaserede projekter.

Hvis du kan lide dette indlæg, så glem ikke at abonnere på min offentlige notesbog for flere nyttige ting


  1. Hvordan kontrollerer man, om der findes en kolonne i en SQL Server-tabel?

  2. I SQL, hvordan man vælger de øverste 2 rækker for hver gruppe

  3. Tilslutning af din ASP.NET-kerneapplikation til en lokal forekomst af SQLServer

  4. Hvordan frigøres mulige Postgres rækkelåse?