Avatar billede kibber Nybegynder
06. november 2003 - 19:56 Der er 2 kommentarer

Afstemning - Skjule/vise afstemningsknapper/resultat

Jeg er ved at lave en afstemning. Brugeren skal logge ind for at kunne stemme. Det er meningen, at afstemningsknapperne kun skal komme frem, hvis brugeren ikke har stemt før, og at resultatet af afstemningen kun skal komme frem, hvis brugeren har stemt.

Problemet er, at den ikke viser nogen af delene. Hvad gør jeg forkert?

<%@language = "javascript"%>

<%
if(Request.QueryString("funktion")== "indsaet")
{
  var brugernavn = (Request.Form("afstemningsknap")== "brugernavn")
  var ja = (Request.Form("afstemningsknap")== "ja")
  var nej = (Request.Form("afstemningsknap")== "nej")
  var vedikke = (Request.Form("afstemningsknap")== "vedikke")

  var connect = Server.CreateObject("ADODB.Connection");
  connect.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Afstemning.mdb"));
  connect.Execute("Insert into Stemmer (Brugernavn, Ja, Nej, Vedikke) values (" + brugernavn + "," + ja + ", " + nej + ", " + vedikke + ")");
 
  connect.close();

  Response.Redirect("Afstemning.asp");
}
%>

<html>
<head>

<script language= "JavaScript">

function validering()
{
  if(document.afstemningsformular.valgt.value == "0")
  {
      alert("Vælg venligst, hvad du vil stemme på!");
  }
 
  else
  {
      document.afstemningsformular.submit();
  }
}

function checkRadioButton()
{
  document.afstemningsformular.valgt.value = "1";
}

</script>

</head>
<body>

<%
var connect = Server.CreateObject("ADODB.Connection");
connect.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Afstemning.mdb"));
var bruger = connect.Execute("SELECT * From Holdliste Where ID=" + Session("bruger"))
var bruger2 = connect.Execute("SELECT * From Stemmer Where ID=" + Session("bruger"))
%>
<table>
<form action="Afstemning.asp?funktion=indsaet" name="afstemningsformular" method="post">
<input type="hidden" name="valgt" value="0">
<input type="hidden" name="brugernavn" value='<%=bruger.Fields("brugernavn")%>'>
<tr>
  <td colspan="2">Er denne afstemning spændende?</td>
</tr>
<%
while(!bruger2.eof)
{
if(bruger2.Fields("ja") == true || bruger2.Fields("nej") == true || bruger2.Fields("vedikke") == true)

}
else
{%>
<tr>
  <td><input type="radio" name="afstemningsknap" value="ja" border="0" onclick="checkRadioButton();"></td>
  <td>Ja</td>
</tr>
<tr>
  <td><input type="radio" name="afstemningsknap" value="nej" border="0" onclick="checkRadioButton();"></td>
  <td>Nej</td>
</tr>
<tr>
  <td><input type="radio" name="afstemningsknap" value="vedikke" border="0" onclick="checkRadioButton();"></td>
  <td>Ved ikke</td>
</tr>
<tr>
  <td></td>
  <td><input type="button" value="Stem" onclick="validering();"></td>
</tr>

</form>

</table>
<%
bruger2.MoveNext();
}
}%>

<p>

<%
var res = connect.Execute("SELECT * From Stemmer");

var total = 0;

while(!res.eof)
{
  total ++
 
  res.MoveNext();
}

res.close();

while(!bruger2.eof)
{
if(bruger2.Fields("ja") == true || bruger2.Fields("nej") == true || bruger2.Fields("vedikke") == true)
{ %>
<table border="1">

<% var ja = connect.Execute("SELECT COUNT(*) From Stemmer WHERE Ja=True"); %>
<tr>
  <td>Ja:</td>
  <td><% =Math.round(ja.Fields(0) / total * 100) %></td>
  <td>%</td>
</tr>
<% ja.close();
var nej = connect.Execute("SELECT COUNT(*) From Stemmer WHERE Nej=True"); %>
<tr>
  <td>Nej:</td>
  <td><% =Math.round(nej.Fields(0) / total * 100) %></td>
  <td>%</td>
</tr>
<% nej.close(); %>
<% var vedikke = connect.Execute("SELECT COUNT(*) From Stemmer WHERE Vedikke=True"); %>
<tr>
  <td>Ved ikke:</td>
  <td><% =Math.round(vedikke.Fields(0) / total * 100) %></td>
  <td>%</td>
</tr>
<% vedikke.close(); %>
<tr>
  <td>Stemmer i alt:</td>
  <td><% =total %></td>
  <td></td>
</tr>
</table>   
<%
}
else
{%>
<%
}
bruger2.MoveNext();
}

bruger.close();
bruger2.close();
connect.close(); %>

</body>
</html>
Avatar billede ambrass Nybegynder
20. september 2004 - 13:43 #1
Jeg har lavet noget lignende. For ikke at komme i klemme med hvem der har stemt eller ej har jeg oprettet to tabeller: tblPoll (afstemning) og tblVotes (stemmer).
Ved at indsætte en post i tblVotes som indeholder PollID, BrugerID og Værdi (ja/nej/vedikke whatever) kan du meget hurtigt finde ud af hvem der har afgivet sin stemme i hvilken afstemning.
Avatar billede kibber Nybegynder
29. september 2004 - 12:42 #2
Okay, tak for tippet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester