Sistema de votos por estrellas

Con este sistema podrás rankear páginas, noticias, etc. El sistema implementa un archivo css, una imágen, un archivo php para actualizar los votos (necesario base de datos mysql) y controlar la cantidad de votos que realiza un usuario (IP) y un archivo javascript (ajax).


1- Crear una imágen

rating Es necesario una imagen con 3 estrellas en diferentes tonalidades. El fondo de la imágen debe ser igual al fondo de la página o capa donde se utilizará. Si se desea modificar el tamaño de la imágen recordar que se deberá cambiar la especificación del tamaño en el archivo css (rating.css).

2- Archivo css (rank.css)

Se utilizará un div y una lista (ul) para crear el siguiente efecto:

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Rated 4/5 estrellas (269 votos)

Código fuente del ejemplo (index.html)

3- Creamos la Base de datos, tablas y registros

Ahora ya tenemos el aspecto gráfico de nuestro sistema de votos por estrellas, pero aún no realiza ninguna votación. Necesitamos almacenar las votaciones de los usuarios y para ello lo primero que deberemos hacer es una base de datos como se indica aqui abajo.

1- Crear la base de datos con el nombre bd_rank
2- Crear un usuario y contraseña para la base de datos
3- Crea las tablas y registros necesarios, inserta este código SQL en phpAdmin(panel de mysql)

Tabla rank: Esta tabla almacena el ranking de la página, sección o noticia que se reankea. Esta tabla contiene 3 campos. (id, media, votos), el primer identifica la página o sección que se quiere rankear, el campo media, contiene la media de votos (1 al 5) y el campo votos, el total de votos recibidos.

Tabla votos_usuarios: Esta tabla almacena temporalmente el identificador de la página o sección votada, el identificador del usuario (IP del ordenador del usuario) y la fecha en que se voto. Esta contiene datos temporales porque cada vez que un usuario realice un voto, comprobará los regístros y eliminará los que esan diferentes a la fecha actual y evitará que un mismo usuario vote a una misma página o sección más de una vez.

4- Archivo PHP para actualizar el ranking (rank.php)

Con la base de datos, tablas y registros creados solo nos queda como actualizar los registros. El archivo rank.php se encargará de actualizarlos.

En este archivo PHP hay una única funcion conectar() que realizará la conección a la base de datos y también contiene el código para actualizar el las tablas del ranking

5- Actualizando los votos(rank.js)

Ahora el último paso realizar la llamada desde la página principal al archivo PHP para actualizar los datos. Basicamente se podria hacer de dos formas, la primera seria realizar una página extra donde se pasaran los valores, ID de la página y el valor del voto por el método POST o el método GET y utilizar la misma página, pero en este caso utilizaremos AJAX y para ello el archivo rank.js que lo único que hará es enviar los datos al archivo php y actualizar la página principal.


6- Modificamos el código de la pagina principal (index.php)

Ahora solo tendremos que insertar el código siguiente en la página principal, en el lugar donde se quiera que salga el voto por estrellas.

El código es similar al del paso 2, donde ahora se llama a la función javascript senDatos(), pasando como parámetro el identificador de la página o sección, la valoración del voto (1-5) y un parametro final que tiene se valer siempre true

Ejemplo final

Aqui el ejemplo finalizado, donde puedes votar y comprobar el funcionamiento. Después de presionar una estrella refresca la página para ver el voto realizado y la nueva media.

  • Currently 3.71588/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Rated 3.71588/5 estrellas (366 votos)

Descargar el archivo con el ejemplo funcional

Descargar archivo


Todos los derechos reservados Copyright
© 2009 PlantillasWebGratis.info