qwertyMedlem sedan jan. 2001391 inlägg
Laddade hem en poll-funktion från 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.
------------------
Qwerty
Den som provar han testar...
qwertyMedlem sedan jan. 2001391 inlägg
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....
------------------
Qwerty
Den som provar han testar...
crisse6Medlem sedan dec. 20002 441 inlägg
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.
------------------
www.groda.net *kvack*, *kvack*
qwertyMedlem sedan jan. 2001391 inlägg
...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.
------------------
Qwerty
Den som provar han testar...
McMillerMedlem sedan okt. 2000210 inlägg
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é :)
------------------
//McMiller
Jag är inte idiot, jag har bara fem skruvar och en mutter lös...
iceM2Medlem sedan mars 2001311 inlägg
Dessutom går det alltid att ladda hem en Access 97 alternativt 2000 databas från webstudio...
------------------
http://www.hutters.net
qwertyMedlem sedan jan. 2001391 inlägg
...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å!
------------------
Qwerty
Den som provar han testar...
qwertyMedlem sedan jan. 2001391 inlägg
...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.)
------------------
Qwerty
Den som provar han testar...
[Redigerat av qwerty den 28 maj 2001]
erkaMedlem sedan dec. 19994 597 inlägg
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
------------------
1 Man, 1 Million dead, The odds are just about even - Ash
[Redigerat av erka den 28 maj 2001]
qwertyMedlem sedan jan. 2001391 inlägg
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...
------------------
Qwerty
Den som provar han testar...
VideMedlem sedan dec. 19996 094 inlägg
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 eller vad du nu vill... :)
------------------
Budweiser - Slightly contaminated water... probably harmless, but I would recommend boiling before you drink it...
webEye.nu SweQuake.com
qwertyMedlem sedan jan. 2001391 inlägg
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"> </td>
<td width="350"> </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"> </td>
<td width="350"> </td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="button" value="Rösta">
<a href="poll_stats.asp?id=<%=intPoll_ID%>">Se aktuell
stä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.
------------------
Qwerty
Den som provar han testar...
erkaMedlem sedan dec. 19994 597 inlägg
Du får använda dig av något javascript, sök på javascript forumet för det där med radioknapparna
------------------
1 Man, 1 Million dead, The odds are just about even - Ash
[Redigerat av erka den 29 maj 2001]
qwertyMedlem sedan jan. 2001391 inlägg
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"))
------------------
Qwerty
Den som provar han testar...
VideMedlem sedan dec. 19996 094 inlägg
Antingen skickas inget med i i Form("vote") eller så har du icke-nummeriska tecken med... ett komma kanske?
------------------
Budweiser - Slightly contaminated water... probably harmless, but I would recommend boiling before you drink it...
webEye.nu SweQuake.com
qwertyMedlem sedan jan. 2001391 inlägg
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)
------------------
Qwerty
Den som provar han testar...
[Redigerat av qwerty den 29 maj 2001]