Las encuestas juegan un papel importante en nuestro sitio web, ya que a través de ellas podemos conocer la opinión de nuestros visitantes sobre algún tema determinado. Este tutorial te enseña a crear un sistema de encuestas para tu web, escrito en el lenguaje ASP.

<%next %>

Este ejemplo muestra como montar un sistemas de encuestas en nuestra web

Lo basamos en una bd que contendrá la pregunta y las posibles respuestas a estas, esto nos evitar tocar el código html cada vez que variemos la encuesta. Mantendremos un registro por cada encuesta y un campo en dicho registro indicara cual es la encuesta activa en ese momento.

La estructura de la tabla encuestas en la BD Tencuestas es :

Nuestra aplicación consta de 2 módulos principales( encuesta.asp y verencuesta.asp) mas un modulo de visualización de todas las encuestas (historico.asp).

Además he incluido el código de 2 módulos de mantenimiento, que nos servirán para incluir nuevas encuestas desde la web (crearencuesta.htm y crearencuesta.asp). El uso de estos módulos implica la creación en la bd de una nueva tabla para el almacenamiento de la clave de creación de encuestas.

Estructura de la tabla clave en la BD Tencuestas

Para mostrar la encuesta en una página lo haremos con un include

Lo que nos permite mostrar la encuesta en cualquier página con solo una línea de código

Módulos básicos del sistema

encuesta.asp

<%Set Connae = Server.CreateObject("ADODB.Connection")
Connae.Open(«Provider=Microsoft.Jet.OLEDB.4.0;Data Source=» & Server.MapPath(«/xxxxx/Tencuestas.mdb»))

 

set rse=createobject(«ADODB.Recordset»)
sqltxt=»SELECT * from encuestas where activa=true»
rse.open sqltxt,connae
if not rse.EOF then
%>

 

<%for i = 0 to rse("nopciones")-1 step 1 %>

<%next
rse.close%>

Encuesta
del mes

<font face=»Verdana» size=»1″><%=rse("pregunta")%>

<%=rse(i)%>

Historico de encuestas

<%else
rse.close
end if
connae.close
set connae=nothing
%>

verencuesta.asp

<% @LCID = 1034 %>
<%response.expires=-1000%>

<%
Set Conn = Server.CreateObject(«ADODB.Connection»)
Conn.Open(«Provider=Microsoft.Jet.OLEDB.4.0;Data Source=» & Server.MapPath(«/xxxxx/Tencuestas.mdb»))

if request.form(«opcion»)<>«» then

select case true

case request.form(«opcion»)=0
campo=»r1″
case request.form(«opcion»)=1
campo=»r2″
case request.form(«opcion»)=2
campo=»r3″
case request.form(«opcion»)=3
campo=»r4″
end select

sqltxt=»update encuestas set «&campo&» = «&campo&»+1 where activa=True»

conn.execute sqltxt
end if
%>

Las encuestas de AspTutor


<%if request.form("opcion")<>«» then%>

Muchas gracias por participar en la
encuesta

<%end if
dim colores(3)
colores(0)=»red»
colores(1)=»blue»
colores(2)=»green»
colores(3)=»black»
tamatabla=400 ‘tamaño de la tabla

 

set rs=createobject(«ADODB.Recordset»)
sqltxt=»SELECT * from encuestas where activa=true»
rs.open sqltxt,conn
if not rs.EOF then
%>

» bgcolor=»#0000FF»>

<%=rs("pregunta")%>

if totvotos< 1 then totvotos=1
for i = 0 to rs(«nopciones»)-1 step 1 %>
<%porcentaje=formatnumber(rs(i+4)*100/totvotos,2)%>

<%=rs(i)%>

<%=porcentaje%>%

Total de votos: <%=totvotos%>

<%if rs("inicio")<>«» then%>

Fecha de inicio: <%=rs("inicio")%>

<%end if%>

<%if rs("fin")<>«» then%>

Fecha de cierre: <%=formatdatetime(rs("fin"),2)%>

<%end if%>