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....
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.
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...
...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.)
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
...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...
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.nuSweQuake.com
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.
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.nuSweQuake.com
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]
274 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849