Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Diseño web | Promoción web | Ganar dinero
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Sistema de encuestas con ASP


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


23/11/05 - 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

#include file="encuesta.asp"

Lo que nos permite mostrar la encuesta en cualquier página con solo una línea de código. el aspecto seria el que podeis ver en la página principal de www.asptutor.com

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
%>

<div align="center">
<center>
<table border="1" width="150" bgcolor="#C0C0C0" bordercolor="#0000FF">
<tr>
<td width="100%">
<form method="POST" action="encuestas/verencuesta.asp" target="_blank">
<table border="0" width="100%">
<tr>
<td width="100%" bgcolor="#0000FF">
<p align="center"><font face="Verdana" size="1" color="#00FFFF"><b><i>Encuesta
del mes</i></b></font></td>
</tr>
<tr>
<td width="100%">
<p align="center"><font face="Verdana" size="1"><b><%=rse("pregunta")%></b></font></td>
;</tr>
<%for i = 0 to rse("nopciones")-1 step 1 %>
<tr>
td width="100%"><input type="radio" value="<%=i%>" name="opcion" checked>
<font face="Verdana" size="1"><%=rse(i)%></font></td>
</tr>
<%next
rse.close%>
</table>
<p align="center">
<input border="0" src="../images/opinar.gif" name="I1" type="image"></p>
  </form>
</center>
<p align="center"><a href="encuestas/historico.asp" target="_blank"><img border="0" src="images/ir.gif" alt="Historico de encuestas"></a></p>
</td>
</tr>
</table>
</div>
<%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
%>

<html>

<head>

<title>Las encuestas de AspTutor</title>
</head>

<body>
<%if request.form("opcion")<>"" then%>
<p align="center"><font color="#FF0000"><b><font face="Verdana" size="1" color="#FF0000">Muchas gracias por participar en la
encuesta</font><br>
</b></font><br>

<%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
%>

<div align="center">
<center>
<table border="1" width="<%=tamatabla%>" bgcolor="#C0C0C0" bordercolor="#0000FF">
<tr>
<td width="<%=tamatabla%>" bgcolor="#0000FF">
<p align="center"><font color="#FFFFFF" face="Verdana" size="1"><b><%=rs("pregunta")%></b></font></td>
</tr>
<tr>
<td width="<%=tamatabla%>">

<table border="0" width="<%=tamatabla%>">
<%totvotos=rs("r1")+rs("r2")+rs("r3")+rs("r4")
if totvotos< 1 then totvotos=1
for i = 0 to rs("nopciones")-1 step 1 %>
<%porcentaje=formatnumber(rs(i+4)*100/totvotos,2)%>
<tr>
<td width="<%=tamatabla*30/100%>" valign="top"><font face="Verdana" size="1"><b><%=rs(i)%></b></font><br>
<font face="Verdana" color="#FFFFFF" size="1"><b><%=porcentaje%>%</b></font></td>

<td width="<%=tamatabla*70/100%>">

<table border="0" width="<%=round(porcentaje)%>%" bgcolor="<%=colores(i)%>">
<tr>
<td width="100%">
</td>
</tr>
</table>
</td>
</tr>
<%next

%>
</table>

</td>
</tr>
<tr>
<td width="300">
<p align="center"><font face="Verdana" size="1"><b>Total de votos: <font color="#FF0000"><%=totvotos%></font> </b></font></p>
</td>
</tr>
<%if rs("inicio")<>"" then%>

<tr>
<td width="300">
<font face="Verdana" size="1">Fecha de inicio: <%=rs("inicio")%></font>
</td>
</tr><%end if%>

<%if rs("fin")<>"" then%>
<tr>
<td width="300">
<font face="Verdana" size="1">Fecha de cierre: <%=formatdatetime(rs("fin"),2)%></font>
</td>
</tr>
<%end if%>
</table>
</center>
</div>
<%rs.close
set conn = nothing
end if%>
<p align="center"><font face="Verdana" size="1"><a href="javascript:close();">Cerrar
ventana</a></font></p>
<p align="center"><font face="Verdana" size="1"><a href="historico.asp">Ver todas las encuestas</a></font></p>

<p align="right"><font face="Verdana" size="1">Sistema de encuestas de <a href="http://www.asptutor.com" target="_blank"><img border="0" src="http://www.asptutor.com/images/asptutor88x31.gif" align="center"></a></font></p>

</body>

</html>

historico.asp

<html>

<head>

<title>Historico de encuestas</title>
</head>

<body>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2"><h3

style="background-color: rgb(0,255,255)"><b>Histórico de encuestas</b> </h3>
</font>
<br>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/xxxxx/Tencuestas.mdb"))
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 order by idencuesta desc"
rs.open sqltxt,conn
do while not rs.EOF%>

<div align="center">
<center>
<table border="1" width="<%=tamatabla%>" bgcolor="#C0C0C0" bordercolor="#0000FF">
<tr>
<td width="<%=tamatabla%>" bgcolor="#0000FF">
<p align="center"><font color="#FFFFFF" face="Verdana" size="1"><b><%=rs("pregunta")%></b></font></td>
</tr>
<tr>
<td width="<%=tamatabla%>">

<table border="0" width="<%=tamatabla%>">
<%totvotos=rs("r1")+rs("r2")+rs("r3")+rs("r4")
if totvotos< 1 then totvotos=1
for i = 0 to rs("nopciones")-1 step 1 %>
<%porcentaje=formatnumber(rs(i+4)*100/totvotos,2)%>
<tr>
<td width="<%=tamatabla*30/100%>" valign="top"><font face="Verdana" size="1"><b><%=rs(i)%></b></font><br>
<font face="Verdana" color="#FFFFFF" size="1"><b><%=porcentaje%>%</b></font></td>

<td width="<%=tamatabla*70/100%>">

<table border="0" width="<%=round(porcentaje)%>%" bgcolor="<%=colores(i)%>">
<tr>
<td width="100%">
</td>
</tr>
</table>
</td>
</tr>
<%next

%>
</table>

</td>
</tr>
<tr>
<td width="300">
<p align="center"><font face="Verdana" size="1"><b>Total de votos: <font color="#FF0000"><%=totvotos%></font> </b></font></p>
</td>
</tr><%if rs("inicio")<>"" then%>

<tr>
<td width="300">
<font face="Verdana" size="1">Fecha de inicio: <%=rs("inicio")%></font>
</td>
</tr><%end if%>

<%if rs("fin")<>"" then%>
<tr>
<td width="300">
<font face="Verdana" size="1">Fecha de cierre: <%=formatdatetime(rs("fin"),2)%></font>
</td>
</tr>
<%end if%>
</table>
</center>
</div>
<br>
<%rs.movenext
loop
rs.close
set rs=nothing
conn.close
set conn=nothing

%>

<p align="right"><font face="Verdana" size="1">Sistema de encuestas de <a href="http://www.asptutor.com" target="_blank"><img border="0" src="http://www.asptutor.com/images/asptutor88x31.gif" align="center"></a></font></p>

</body>

</html>

Módulos de mantenimiento

crearencuesta.htm

<html>

<head>

<title>Crear una nueva encuesta</title>
</head>

<body>

<div align="center">
<center>
<table border="0" width="80%">
<tr>
<td width="100%" bgcolor="#0000FF">

<p align="center"><font color="#FFFFFF">Crear una nueva encuesta</font></p>
</td>
</tr>
<tr>
<td width="100%" bgcolor="#C0C0C0">
<p align="center"><font face="Verdana" size="1">Sistema de encuestas de <a href="http://www.asptutor.com" target="_blank"><img border="0" src="http://www.asptutor.com/images/asptutor88x31.gif" align="center"></a></font></p>

<form method="POST" action="crearencuesta.asp">
<div align="center">
<center>
<table border="0" width="90%">
<tr>
<td width="34%" bgcolor="#0000FF"><font color="#FFFFFF">Pregunta</font></td>
<td width="66%" align="center"><input type="text" name="pregunta" size="40"></td>
</tr>
<tr>
<td width="34%" bgcolor="#0000FF"><font color="#FFFFFF">Respuesta 1</font></td>
<td width="66%" align="center"><input type="text" name="tr1" size="40"></td>
</tr>
<tr>
<td width="34%" bgcolor="#0000FF"><font color="#FFFFFF">Respuesta 2</font></td>
<td width="66%" align="center"><input type="text" name="tr2" size="40"></td>
</tr>
<tr>
<td width="34%" bgcolor="#0000FF"><font color="#FFFFFF">Respuesta 3</font></td>
<td width="66%" align="center"><input type="text" name="tr3" size="40"></td>
</tr>
<tr>
<td width="34%" bgcolor="#0000FF"><font color="#FFFFFF">Respuesta 4</font></td>
<td width="66%" align="center"><input type="text" name="tr4" size="40"></td>
</tr>
<tr>
<td width="34%"> </td>
<td width="66%" align="center"> </td>
</tr>
<tr>
<td width="34%" bgcolor="#0000FF"><font color="#FFFFFF">Clave de creación</font></td>
<td width="66%" align="center"><input type="password" name="clave" size="40"></td>
</tr>
</table>
</center>
</div>
<p align="center"><input type="checkbox" name="activar" value="ON">
Activar la encuesta una vez insertada</p>
<p align="center"><input type="submit" value="Enviar" name="B1"><input type="reset" value="Restablecer" name="B2"><br>
</p>
</form>
</td>
</tr>
</table>
</center>
</div>

</body>

</html>


crearencuesta.asp

<html>

<head>

<title>Creacion de encuestas</title>
</head>

<body>
<%Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4

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

set rs=createobject("ADODB.Recordset")
if request.form("activar")="ON" then
fin=month(date)&"/"&day(date)&"/"&year(date)

sqltxt="update encuestas set fin=#"&fin&"# where activa=True"
'response.write sqltxt
conn.execute sqltxt

sqltxt="update encuestas set activa=False where activa=True"
conn.execute sqltxt

end if

sqltxt="select * from clave"
rs.open sqltxt,conn
if rs("clave")<> request.form("clave") then
rs.close
%>
<div align="center">
<center>
<table border="0" width="50%">
<tr>
<td width="100%">
<table border="10" width="100%" bgcolor="#FF0000" bordercolor="#000000">
<tr>
<td width="100%">
<p align="center"><font color="#FFFFFF">Clave ERRONEA</font></td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="100%">
<p align="center"><a href="javascript:window.history.back()">Intentalo de nuevo</a>
</td>
</tr>
</table>
</center>
</div>
<%else
rs.close
pregunta=trim(request.form("pregunta"))
tr1=trim(request.form("tr1"))
tr2=trim(request.form("tr2"))
tr3=trim(request.form("tr3"))
tr4=trim(request.form("tr4"))
if request.form("activar")="ON" then
activar=True
else
activar=false
end if

if tr1="" or tr2="" or pregunta="" then%>
<div align="center">
<center>
<table border="0" width="50%">
<tr>
<td width="100%">
<table border="10" width="100%" bgcolor="#FF0000" bordercolor="#000000">
<tr>
<td width="100%">
<p align="center"><font color="#FFFFFF">Al menos se deben ofrecer una pregunta y las alternativas 1 y 2 </font></td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="100%">
<p align="center"><a href="javascript:window.history.back()">Intentalo de nuevo</a>
</td>
</tr>
</table>
</center>
</div>

<%
else
nopciones=2
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
rs.open "encuestas",conn
rs.addnew
rs("pregunta")=pregunta
rs("tr1")=tr1
rs("r1")=0
rs("tr2")=tr2
rs("r2")=0
if tr3 <> "" then
nopciones=3
rs("tr3")=tr3
rs("r3")=0
if tr4 <> "" then
nopciones=4
rs("tr4")=tr4
rs("r4")=0
end if
end if
rs("nopciones")=nopciones
rs("activa")=activar
if request.form("activar")="ON" then
rs("inicio")=date
end if
rs.update%>
<div align="center">
<center>
<table border="0" width="90%" cellpadding="2" bgcolor="#C0C0C0">
<tr>
<td width="100%" bgcolor="#0000FF">
<p align="center"><font color="#FFFFFF">Nueva Encuesta creada</font>
</td>
</tr>
<tr>
<td width="100%"><br><div align="center">
<center>
<table border="0" width="80%">
<tr>
<td width="21%" bgcolor="#0000FF"><font color="#FFFFFF">identificador </font></td>
<td width="79%" bgcolor="#FFFFFF"><%=rs("idencuesta")%></td>
</tr>
<tr>
<td width="21%" bgcolor="#0000FF"><font color="#FFFFFF">Pregunta</font></td>
<td width="79%" bgcolor="#FFFFFF"><%=rs("pregunta")%></td>
</tr>
<tr>
<td width="21%" bgcolor="#0000FF"><font color="#FFFFFF">Opción 1</font></td>
<td width="79%" bgcolor="#FFFFFF"><%=rs("tr1")%></td>
</tr>
<tr>
<td width="21%" bgcolor="#0000FF"><font color="#FFFFFF">Opción 2</font></td>
<td width="79%" bgcolor="#FFFFFF"><%=rs("tr2")%></td>
</tr>
<tr>
<td width="21%" bgcolor="#0000FF"><font color="#FFFFFF">Opción 3</font></td>
<td width="79%" bgcolor="#FFFFFF"><%=rs("tr3")%></td>
</tr>
<tr>
<td width="21%" bgcolor="#0000FF"><font color="#FFFFFF">Opción 4</font></td>
<td width="79%" bgcolor="#FFFFFF"><%=rs("tr4")%></td>
</tr>
<tr>
<td width="21%" bgcolor="#0000FF"><font color="#FFFFFF">Activacion</font></td>
<td width="79%" bgcolor="#FFFFFF"><%=activar%></td>
</tr>
</table>

</center>
</div>

<br>
</td>
</tr>
</table>
</center>
</div>
<p> </p>

<%rs.close
conn.close
end if
end if%>

<p align="right"><font face="Verdana" size="1">Sistema de encuestas de <a href="http://www.asptutor.com" target="_blank"><img border="0" src="http://www.asptutor.com/images/asptutor88x31.gif" align="center"></a></font></p>

</body>

</html>


Nota: podéis usar y modificar este código a vuestro antojo, pero en el caso de su uso en Internet, deberá mantener una referencia a www.asptutor.com

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 1 comentario (Añadir)
+ 7 comentarios no revisados

 Autoría, licencia y acciones sobre este artículo

Informe de Pedro Rufo Martín*
Webmaster de www.asptutor.com
URL: http://www.asptutor.com/

Atención: Copyright. Este artículo no se puede reproducir sin la autorización expresa del autor.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Taller de ASP
Anterior: Un Chat en ASP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Scripts en ASP


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestra un comentario revisado

 Comentario de Beto
10/1/06 
me da error: en crearencuesta.asp me sale: Ocurrió una excepción.
línea 36
----------------------------------------
y tal línea tiene el sgte código:
if rs("clave")<>request.form("clave")then


Añadir un comentario al artículo Añadir un comentario del artículo
 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se han encontrado 7 comentarios sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Taller de ASP
Categorías
+Scripts en ASP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia