---
title: "poll-script"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/9767-poll-script"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "qwerty"
published: "2001-05-28T06:54:00.000Z"
updated: "2001-05-29T14:39:00.000Z"
replies: 15
views: 448
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/9767-poll-script"
---

# poll-script

## #1 — qwerty, 2001-05-28T06:54Z

Laddade hem en poll-funktion från [www.swede.com,](http://www.swede.com,)  men lyckas inte få den att funka.

Nån som har lust att ladda ner den och se om den går att få att fungera? <http://www.swede.com>  under asp-script.

Permalänk: https://www.webforum.nu/p/9767

## #2 — qwerty, 2001-05-28T08:25Z

Så här är fallet:

Jag försöker göra en poll med fem alternativ. Man ska välja två stycken och man får bara rösta en gång. Den som jag hittade ovan verkar vara idealisk, men som ni vet får jag den inte att fungera. 
Om ingen kan hjälpa mig att få den att funka, undrar jag om någon kan tipsa mig om ett sådant script. Har sökt här på wf efter en tråd, men inte hittat något som stämmer in riktigt. 

Det vore super-hygglo om nån kunde försöka hjälpa mig lite. Den poll jag använder nu bygger på två textfiler. ja och nej. Men jag skulle vilja ha med en databas och ha en admin-funktion för att kunna lägga till nya frågor o sånt....

Permalänk: https://www.webforum.nu/p/270289

## #3 — crisse6, 2001-05-28T09:27Z

varför inte ta och gå in på idg.se under webmastern??? det finns ju pollskript med högst 5 alt och minst 2 alt... med cookies så man inte kan rösta flera ggr.

Permalänk: https://www.webforum.nu/p/270290

## #4 — qwerty, 2001-05-28T09:38Z

...har kikat på den. Problemet är att det är en access 2000-databas och jag kan bara använda access 97-baser. Därför ställer jag följande [fråga.](http://cgi.webforum.nu/wf/Forum11/HTML/004462.html)

Permalänk: https://www.webforum.nu/p/270291

## #5 — McMiller, 2001-05-28T10:24Z

Om du har access 97 så är det väl bara att göra en databas där som är likadan och använda den istället? för jag ha rför mig att det står i idgs text hur den är uppbyggd. bara en idé :)

Permalänk: https://www.webforum.nu/p/270292

## #6 — iceM2, 2001-05-28T11:58Z

Dessutom går det alltid att ladda hem en Access 97 alternativt 2000 databas från webstudio...

Permalänk: https://www.webforum.nu/p/270293

## #7 — qwerty, 2001-05-28T12:30Z

...dessutom var det inte från webstudio utan från webbmastern och dessutom skickade dom med en textfil som det stod så här i:

Databasen är av Microsoft Access 2000-format och fungerar inte med lägre versioner av Access.

Så det så!

Permalänk: https://www.webforum.nu/p/270294

## #8 — qwerty, 2001-05-28T12:48Z

...har fått pollscriptet från mikrodatorn att fungera. (så som dom vill). Jag försöker dock att modifiera det för att det ska passa mina behov och det går inte riktigt lika bra. Man kan bara rösta på ett alternativ-jag vill att man ska kunna rösta på 2...egentligen är det väl mest det som jag vill. Någon som har ett hett tips på hur jag ska göra.
Dels för att man max ska kunna sätt 2 kryss i formuläret och dels så att den räknar upp värdet för båda svaren på resultatsidan.

Har försökt en halv dag nu, men alltid är den något som inte fungerar (...som jag inte klarar kanske jag borde skriva.)

Permalänk: https://www.webforum.nu/p/270295

## #9 — erka, 2001-05-28T13:52Z

Jag gjorde en flervals poll för ett community med admin funktioner. Här ser du koden för att kolla om svaret var rätt och sidan där man röstar

pollcheck.asp

```
   <%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("db/LocalPoll.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"

SQLStmt = "SELECT * FROM PollAnswear Where PollAnswearId = "& Request.Form("svar") &""
Set RS = Databas.Execute(SQLStmt)

PollId = Request.Form("pollid")

'OM DET VAR FEL SVARAT

If RS("pollscore") = false Then
	Response.Write"<b>Detta var fel</b><br>"

	SQLStmt2 = "SELECT * FROM PollScore Where PollId = "& PollId &" And UserName = '"& Session("username") &"' "
	SET RS2 = Databas.Execute(SQLstmt2)

	If RS2.EOF = True then

		Response.Write"Du har inte röstat på denna fråga tidigare, men du hade fel så noll poäng till dig!"
		SQL = "INSERT INTO POLLSCORE"
		SQL = SQL & "(PollId,Username) "
		SQL = SQL & "VALUES(" & PollId & ", '" & Session("username") & "')"
		Databas.Execute(SQL)
		poang = 0
		SQLStmt ="UPDATE SCORE SET PollScore = PollScore +"& poang &"  Where Username = '"& Session("username") &"'"
		Databas.Execute(SQLStmt)
	Else
		Response.Write "Redan Röstat, inga poäng utdelade"
	End if
	RS2.close

'OM DET VAR RÄTT SVARAT

ElseIf RS("pollscore") = true Then
	Response.Write"<b>Detta var ju helt rätt</b><br>"
	

	SQLStmt2 = "SELECT * FROM PollScore Where PollId = "& PollId &" And UserName = '"& Session("username") &"' "
	SQLStmt = "SELECT PollCorrect, PollId From PollQuestion where PollId = "& PollId &""
	Set RS = Databas.Execute(SQLStmt)
	SET RS2 = Databas.Execute(SQLstmt2)

	If RS2.EOF = True then
	
		Response.Write"Du har inte röstat på denna fråga tidigare, du hade helt Rätt så ett poäng till dig!"
		SQL = "INSERT INTO POLLSCORE"
		SQL = SQL & "(PollId,Username) "
		SQL = SQL & "VALUES(" & PollId & ", '" & Session("username") & "')"
		Databas.Execute(SQL)
		poang = 1
		SQLStmt ="UPDATE SCORE SET PollScore = PollScore +"& poang &"  Where Username = '"& Session("username") &"'"
		Databas.Execute(SQLStmt)
	Else
		Response.Write "Redan Röstat, inga poäng utdelade"

	End if
	RS2.close

Response.Write"<br><br><b>Svaret på frågan:</b><br>"
Response.Write""& RS("PollCorrect") &""
RS.Close
End If
%>
```

Poll.asp

```
                   <form name="form1" method="post" action="Default.asp?DocId=PollCheck&CatId=Poll">
<%
SQL = "select Count(*) AS Rnd from PollQuestion"
Set CountRnd = databas.execute(SQL)

Randomize
Set rstemp = Server.Createobject("ADODB.Recordset")
SQL = "Select PollId from PollQuestion"
rstemp.cursorlocation = 3
rstemp.cachesize = 5
rstemp.open SQL, "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/LocalPoll.mdb") & ";"
rstemp.move Int(Rnd*CountRnd("Rnd"))

SQLStmt = "SELECT PollAnswear.PollAnswearId, PollAnswear.PollId, PollAnswear.PollAnswear, PollQuestion.PollId, PollQuestion.PollInsertDate, PollQuestion.PollQuestion,PollQuestion.PollFrom FROM PollQuestion INNER JOIN PollAnswear ON PollQuestion.PollId = PollAnswear.PollId Where PollQuestion.PollId = "& RStemp("pollid") &" AND PollAnswear.PollId = "& RStemp("pollid") &" "
Set RS = Databas.Execute(SQLStmt)
%>
                         
                          <input type="hidden" name="PollId" value="<%=RS("PollId")%>">
                         <%=RS("PollQuestion")%><br>
 <br>
<% Do Until RS.EOF%>
<input type="radio" name="svar" value="<%=RS("pollanswearid")%>">
<%=RS("pollanswear")%> <br>
 <%
RS.MoveNext
Loop
Rs.close
%>
<br>
<input type="image" border="0" name="imageField" src="images/knappar/btnOK.gif" width="21" height="16">
                         
</form>
```

va fan, den bidde konstig när jag kopierade in den, hinner inte ändra på den. Men du ser påt ungefär hur man kan göra

Tilläggas kan att detta var en fråge sport ingen poll. Men du ser ju hur man kan göra typ..som sagt innan

Permalänk: https://www.webforum.nu/p/270296

## #10 — qwerty, 2001-05-29T11:13Z

Kanske är jag dum....

...men om du har samma namn(name) på alla radiobuttons vid alternativet kan man väl bara välja ett alternativ? Jag vill att man ska kunna rösta på två alternativ...

Permalänk: https://www.webforum.nu/p/270297

## #11 — Vide, 2001-05-29T11:33Z

Har man samma namn, och man väljer flera, så kommer värdet i form av en komma-separerad lista... den kan du antingen splita upp till ett [array](http://www.webeye.nu/default2.asp?que=asp/default.asp&exec=asp/artiklar/asp_12.asp#split) eller vad du nu vill... :)

Permalänk: https://www.webforum.nu/p/270298

## #12 — qwerty, 2001-05-29T11:45Z

Kolla här:

Detta är mitt formulär. Där går bara att markera ett alternativ. När man trycker på en andra flyttas markeringen dit. Jag vill att man ska kunna välja 2. Varken mer eller mindre. Om man väljer ett eller tre ska man få ett felmess som säger att man måste välja 2 alternativ.

```
<form method="post" action="poll_stats.asp?id=<%=intPoll_ID%>">
  <table width="400" border="0" cellspacing="0" cellpadding="1">
    <tr> 
      <td colspan="2"><%=strQuestion%></td>
    </tr>
    <tr> 
      <td width="46">&nbsp;</td>
      <td width="350">&nbsp;</td>
    </tr>
<%
For i = 0 To intAnswers-1
%>
    <tr> 
      <td width="46" align="center"> 
        <input type="radio" name="vote" value="<%=i+1%>">
      </td>
      <td width="350"><%=arrAnswer(i)%></td>
    </tr>
<%
Next
%>
    <tr> 
      <td width="46">&nbsp;</td>
      <td width="350">&nbsp;</td>
    </tr>
    <tr> 
      <td colspan="2">
        <input type="submit" name="button" value="R&ouml;sta">
        &nbsp;&nbsp; <a href="poll_stats.asp?id=<%=intPoll_ID%>">Se aktuell 
        st&auml;llning</a></td>
    </tr>
  </table>
</form>
```

...och här är sidan som registrerar resultatet. 

```
<%
Response.Buffer = True
%>
<!--#include file="dbcon.asp" -->
<%
Dim intError 
intError = 0
If len(request.form("button"))>0 THEN
	If request.form("vote")="" THEN
		intError = 1
	Else
		If request.cokies("votepoll")("pollid") = request.querystring("id") THEN
			strVoteDate = request.cokies("votepoll")("votedate")
			intError = 2
		Else
			Dim intVoteNr, strSetSQL
			intVoteNr = cint(request.form("vote"))
			strSetSQL = "Poll_Count"&intVoteNr&"=Poll_Count"&intVoteNr&"+1"
			strSQL = "UPDATE Polls SET "&strSetSQL&" WHERE Poll_ID="&request.querystring("id")
			con.Execute(strSQL)
			response.cokies("votepoll")("pollid") = request.querystring("id")
			response.cokies("votepoll")("votedate") = Date()
		End If
	End If
End If

%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<%
strSQL = "SELECT * FROM Polls WHERE Poll_ID="&request.querystring("id")
Set rs = con.Execute(strSQL)
intPoll_ID = rs(0)
strQuestion = rs(1)
strStartDate = rs(2)
intAnswers = rs(9)
strPollImage = rs(16)

Dim PollStats()
ReDim PollStats(intAnswers-1, 3)  ' 1=Question  2=Votes
intSum = 0
For i=0 To intAnswers-1
	PollStats(i, 1) = rs("Poll_Answer"&i+1)
	PollStats(i, 2) = rs("Poll_Count"&i+1)
	intSum = intSum + rs("Poll_Count"&i+1)
Next

%>
```

allvarligt talat:
jag har försökt nu i en och en halv dag med detta nu. Blir glad om nån vill hjälpa mig...

...och cookies är medvetet felstavat.

Permalänk: https://www.webforum.nu/p/270299

## #13 — erka, 2001-05-29T11:53Z

Du får använda dig av något javascript, sök på javascript forumet för det där med radioknapparna

Permalänk: https://www.webforum.nu/p/270300

## #14 — qwerty, 2001-05-29T13:55Z

Tack för tipset!

Nu funkar formuläret som det ska. Sidan som tar emot rösterna ger nu följande felmess. Koden finns ju ovan om nån vill kika.

type mismatch: 'cint'

/rosta/poll_stats.asp, line 17

Detta är rad 17:

```
intVoteNr = cint(request.form("vote"))
```

Permalänk: https://www.webforum.nu/p/270301

## #15 — Vide, 2001-05-29T14:07Z

Antingen skickas inget med i i Form("vote") eller så har du icke-nummeriska tecken med... ett komma kanske?

Permalänk: https://www.webforum.nu/p/270302

## #16 — qwerty, 2001-05-29T14:39Z

Så här då eller?

myArray = split(request.form("vote"),",")

Till själva huvudproblemet:
När jag splitat upp listan i en array, hur får jag då dessa värden att registreras som röster? Nedan koden som den ser ut nu.

```
Dim intVoteNr, strSetSQL
                                         intVoteNr = cint(request.form("vote"))
                                         strSetSQL = "Poll_Count"&intVoteNr&"=Poll_Count"&intVoteNr&"+1"
                                         strSQL = "UPDATE Polls SET "&strSetSQL&" WHERE Poll_ID="&request.querystring("id")
                                         con.Execute(strSQL)
```

Permalänk: https://www.webforum.nu/p/270303

---

Tråden på webben: https://www.webforum.nu/amne/asp/9767-poll-script
