Está usted en Indice > Construcción > Lenguajes > ASP > Códigos ya Escritos > WebTaller - Encuesta en asp
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Encuesta en asp

Para realizar una encuesta y llevar el cuento de votos necesitaremos 1 tabla de Access. Ademas usaremos dos página ASP. En la primera mostraremos la pregunta con el formulario o botones, y en la segunda mostraremos los resultados.
No es nada dificil, pero hay que prestarle antención al código.
La primer pagina es un formulario en HTML puro:

Archivo: encu.asp

<FORM METHOD="post" ACTION="encu2.asp">
¿Qué programa usas para escribir tus scripts?<BR><BR>
Notepad: <INPUT NAME="mismo" TYPE="Radio" VALUE="1"><BR>
HomeSite: <INPUT NAME="mismo" TYPE="Radio" VALUE="2"><BR>
Visual Interdev: <INPUT NAME="mismo" TYPE="Radio" VALUE="3"><BR>
DreamWeaber: <INPUT NAME="mismo" TYPE="Radio" VALUE="4"><BR><BR>
<INPUT TYPE="Submit" VALUE="Votar!">
</FORM>

La segunda página contiene todo el código ASP. Verifica si votamos, ingresa el voto y muestra el gráfico de barras.

Archivo: encu2.asp

<%@ Language=VBScript%>
<%
'Verificamos que efectivamente alguien haya votado.
If Request.Form="" then
'Si no votó y redireccionamos a encu.asp
Response.Redirect "encu.asp"
%>

<HTML>
<HEAD>
<TITLE>Encuesta con ASP</TITLE>
</HEAD>
<BODY>
<%
Else
'guardamos en voto la info del formulario.
voto = Request.Form("mismo")
'Conectamos a la BD.
Set oConn = Server.CreateObject ("ADODB.Connection")
Set RS = Server.CreateObject ("ADODB.RecordSet")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=D:tucarpetabdbasebd.mdb"
'Con una sentencia SQL pedimos toda la BD.
sql = "SELECT * FROM encuesta"
RS.Open sql, oConn, 2, 2
'Si es el primer voto de todos, creamos el registro para que los UPDATES funcionen.
'Este IF solo se cumplirá una vez. La primera.
If RS.EOF = True Then
oConn.Execute "INSERT INTO encuesta(Dato1, Dato2, Dato3, Dato4) VALUES (0,0,0,0)"
RS.Requery
End If
'Comenzamos el chequeo de datos. Para todos igual
If voto = "1" then
'Si se cumple el IF, sumamos uno al campo correspondiente.
oConn.Execute "UPDATE encuesta SET Dato1="&RS.Fields("Dato1")+1&""
'La siguiente linea hace un Refresh en la Tabla, para tener los datos recientes.
RS.Requery
Response.Write "<BR>Voto sumado a NotePad<BR>"
ElseIf voto = "2" then
oConn.Execute "UPDATE encuesta SET Dato2="&RS.Fields("Dato2")+1&""
RS.Requery
Response.Write "<BR>Voto sumado a HomeSite<BR>"
ElseIf voto = "3" then
oConn.Execute "UPDATE encuesta SET Dato3="&RS.Fields("Dato3")+1&""
RS.Requery
Response.Write "<BR>Voto sumado a Visual Interdev<BR>"
ElseIf voto = "4" then
oConn.Execute "UPDATE encuesta SET Dato4="&RS.Fields("Dato4")+1&""
RS.Requery
Response.Write "<BR>Voto sumado a DreamWeaber<BR>"
End If
'Sumamos todos los votos y los guardamos en una variable.
total = CInt(RS("Dato1"))+CInt(RS("Dato2"))+CInt(RS("Dato3"))+CInt(RS("Dato4"))
'Mostrar el gráfico.
%>
<TABLE ALIGN="center" WIDTH="90%" BORDER="1" CELLPADDING="0" CELLSPACING="0"><TR><TD>
<IMG HEIGHT="25" SRC="" BORDER="1" WIDTH="<%= CInt(RS("Dato1")*100/total)%>%"><BR>
<IMG HEIGHT="25" SRC="" BORDER="1" WIDTH="<%= CInt(RS("Dato2")*100/total)%>%"><BR>
<IMG HEIGHT="25" SRC="" BORDER="1" WIDTH="<%= CInt(RS("Dato3")*100/total)%>%"><BR>
<IMG HEIGHT="25" SRC="" BORDER="1" WIDTH="<%= CInt(RS("Dato4")*100/total)%>%"><BR>
</TD></TR></TABLE>
<%
'Limpiamos y cerramos todo.
RS.Close
oConn.Close
Set Rs = Nothing
Set oConn = Nothing
End If
%>

</BODY>
</HTML>

Ver que la cuenta que se hace para mostrar las barras es mutiplicar por 100 y luego dividir por el total de votos. Eso nos da el porcentaje
En el SRC de la tabla que muestra el gráfico no puse ninguna imagen, pero uds podrían poner una imagen de 1x1 de colores diferentes y quedaran barras de colores. ;)



Usuarios que han visto este tema también han visto...

- Esta aplicación que desarrolla rápidamente una breve lista de preguntas y respuestas o un largo desarrollo de ayuda. Las características son poderosas y permiten la administración online sin limitaciones. También incluye una navegación dinámica para los v
- JMailbox en ASP
- Recibir a un usuario cordialmente (cookies)
- DotNET myBlog
- CrazyBeavers Upload Class


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 07-09-2008 a las 03:23:55