Tjena!
Jag skulle behöva hjälp med ett omröstningsscript...
Här är koden:
<html>
<head>
<title>Omröstning - _ _ _ _ _ _.nu</title>
</head>
<body>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("votedb.mdb")
SQL = "SELECT top 1 * From rosta ORDER BY ID DESC"
Set RecSet = Connect.Execute(SQL)
If RecSet.EOF Then
%>
Inga Omröstningar för tillfället...
<%
Else
Do Until RecSet.EOF
fraga = Recset("fraga")
svar1 = Recset("svar1")
svar2 = Recset("svar2")
svar3 = Recset("svar3")
svar4 = Recset("svar4")
svar5 = Recset("svar5")
svar6 = Recset("svar6")
svar7 = Recset("svar7")
svar8 = Recset("svar8")
svar9 = Recset("svar9")
svar10 = Recset("svar10")
%>
<hr>
Fråga: <% =fraga%>
Svar:<br>
<a href="omrostning.asp?rosta=1"><% =svar1%></a><br>
<a href="omrostning.asp?rosta=2"><% =svar2%></a><br>
<a href="omrostning.asp?rosta=3"><% =svar3%></a><br>
<a href="omrostning.asp?rosta=4"><% =svar4%></a><br>
<a href="omrostning.asp?rosta=5"><% =svar5%></a><br>
<a href="omrostning.asp?rosta=6"><% =svar6%></a><br>
<a href="omrostning.asp?rosta=7"><% =svar7%></a><br>
<a href="omrostning.asp?rosta=8"><% =svar8%>v<br>
<a href="omrostning.asp?rosta=9"><% =svar9%></a><br>
<a href="omrostning.asp?rosta=10"><% =svar10%></a><br>
<%
RecSet.MoveNext
Loop
End If
%>
<%
RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>
<hr>
<a href="omrostning.asp?visa=resultat">Visa resultat</a>
<a href="omrostning_admin.asp?admin=login">Ändra Omröstning</a>
</body>
</html>
Jag skulle vilja att där koden anropar svar1, svar2, o.s.v.
att den kollar om den är tom och är den tom så skriver den inte ut länken...
------------------
.................
PaceMedlem sedan juni 20019 024 inlägg Försök att göra om kodrader som gör samma sak till en "For Next" loop istället, eftersom du då enklare kan hantera dem... byt ut följande:
fraga = Recset("fraga")
svar1 = Recset("svar1")
svar2 = Recset("svar2")
svar3 = Recset("svar3")
svar4 = Recset("svar4")
svar5 = Recset("svar5")
svar6 = Recset("svar6")
svar7 = Recset("svar7")
svar8 = Recset("svar8")
svar9 = Recset("svar9")
svar10 = Recset("svar10")
%>
<hr>
Fråga: <% =fraga%>
Svar:<br>
<a href="omrostning.asp?rosta=1"><% =svar1%></a><br>
<a href="omrostning.asp?rosta=2"><% =svar2%></a><br>
<a href="omrostning.asp?rosta=3"><% =svar3%></a><br>
<a href="omrostning.asp?rosta=4"><% =svar4%></a><br>
<a href="omrostning.asp?rosta=5"><% =svar5%></a><br>
<a href="omrostning.asp?rosta=6"><% =svar6%></a><br>
<a href="omrostning.asp?rosta=7"><% =svar7%></a><br>
<a href="omrostning.asp?rosta=8"><% =svar8%>v<br>
<a href="omrostning.asp?rosta=9"><% =svar9%></a><br>
<a href="omrostning.asp?rosta=10"><% =svar10%></a><br>
till detta, så ska det nog fungera:
Response.Write "<HR>Fråga: " & Recset("fraga") & "<br>Svar:<br>"
For loopCount = 1 To 10
If recset("svar" & loopCount) = "" Then Exit For
Response.Write "<a href=""omrostning.asp?rosta=" & loopCount & """>" & recset("svar" & loopCount) & "</a><br>"
Next
[r] Det kan ju vara ganska kinkigt att kolla om strängen är tom (dvs sträng = "") så man kan ju ändra det till
If IsEmpty(recset("svar" & loopCount)) OR IsNull(recset("svar" & loopCount)) Then
------------------
Peter D
[Redigerat av Pace den 24 aug 2001]
Flyttar upp...
Den lite
Frågan är fortfarande hur jag kan få den med koden att kolla om datbas fältet är tomt och då inte skriva ut det...
------------------
Das Dunkhopf...
PaceMedlem sedan juni 20019 024 inlägg Jo, det gör den också (kanske var lite otydlig):
For loopCount = 1 To 10
If recset("svar" & loopCount) = "" Then Exit For
Response.Write "<a href=""omrostning.asp?rosta=" & loopCount & """>" & recset("svar" & loopCount) & "</a><br>"
Next
------------------
Peter D
[Redigerat av Pace den 25 aug 2001]
Jag får det inte att funka finns det någon som kan hjälpa mig med ett annat sätt eller hjälpa mig att skriva om hela skiten...
------------------
Das Dunkhopf...
ekke_tMedlem sedan juli 2001203 inlägg Den enklaste men kanske inte snyggaste metoden är väl att bara skriva:
<%if svar1 <> "" then%>
<a href="omrostning.asp?rosta=1"><% =svar1%></a><br>
<%end if%>
detta upprepas sen för alla svaren...
------------------
Erik
[Redigerat av ekke_t den 27 aug 2001]
LarsGMedlem sedan dec. 200012 464 inlägg Hur ser din kod ut nu? Använder du den Pace skrev?
Vad har du för problem.
------------------
essentitia preter non sans multiplicandum
Jag vet inte hur jag ska använda Pace kod för när jag försökte köra den så klagade den bara på End i If satsen trots att jag hade kvar If och Else...
Och sedan krävde den en loop som loppade i onädnlighet...
------------------
Das Dunkhopf...
PaceMedlem sedan juni 20019 024 inlägg Posta koden!
------------------
Peter D
Här:
<html>
<head>
<title>Omröstning - _ _ _ _ _ _.nu</title>
</head>
<body>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("votedb.mdb")
SQL = "SELECT top 1 * From rosta ORDER BY ID DESC"
Set RecSet = Connect.Execute(SQL)
If RecSet.EOF Then
%>
Inga Omröstningar för tillfället...
<%
Else
Do Until RecSet.EOF
Response.Write "<HR>Frågan: " & Recset("fraga") & "<br>Svar:<br>"
For loopCount = 1 To 10
If recset("svar" & loopCount) = "" Then Exit For
Response.Write "<a href=""omrostning.asp?rosta=" & loopCount & """>" & recset("svar" & loopCount) & "</a><br>"
Next
Loop
End If
%>
<%
RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>
<hr>
<a href="omrostning.asp?visa=resultat">Visa resultat</a>
<a href="omrostning_admin.asp?admin=login">Ändra Omröstning</a>
</body>
</html>
------------------
Das Dunkhopf...
PaceMedlem sedan juni 20019 024 inlägg Det blåa är omgjort.
<html>
<head>
<title>Omröstning - _ _ _ _ _ _.nu</title>
</head>
<body>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("votedb.mdb")
SQL = "SELECT top 1 * From rosta ORDER BY ID DESC"
Set RecSet = Connect.Execute(SQL)
If RecSet.EOF Then
Response.Write "Inga Omröstningar för tillfället..."
Else
Response.Write "<HR>Frågan: " & Recset("fraga") & "<br>Svar:<br>"
For loopCount = 1 To 10
If recset("svar" & loopCount) = "" Then Exit For
Response.Write "<a href=""omrostning.asp?rosta=" & loopCount & """>" & recset("svar" & loopCount) & "</a><br>"
Next
End If
RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>
<hr>
<a href="omrostning.asp?visa=resultat">Visa resultat</a>
<a href="omrostning_admin.asp?admin=login">Ändra Omröstning</a>
</body>
</html>
[r] De blåmarkerade raderna gör att du loopar recordsetet utan att gå framåt... då måste du använda recset.MoveNext (men det ska du inte gör nu!). Och eftersom varje poll innefattar en post, vill vi ju inte gå igenom varje poll som ligger i databasen, utan bara den första (TOP 1).
Hoppas du blev klokare, annars får du fråga igen :)
Do Until RecSet.EOF
Response.Write "<HR>Frågan: " & Recset("fraga") & "<br>Svar:<br>"
For loopCount = 1 To 10
If recset("svar" & loopCount) = "" Then Exit For
Response.Write "<a href=""omrostning.asp?rosta=" & loopCount & """>" & recset("svar" & loopCount) & "</a><br>"
Next
Loop
------------------
Peter D
[Redigerat av Pace den 27 aug 2001]
Jag använde din text som du skrev överst utan loop och det...
Men nu får jag felet oväntad "Next"
------------------
Das Dunkhopf...
[Redigerat av ReloadMaster den 27 aug 2001]
PaceMedlem sedan juni 20019 024 inlägg Ser koden ut exakt likadan som den jag postade ovan? :q
------------------
Peter D
Så här:
<html>
<head>
<title>Omröstning - _ _ _ _ _ _.nu</title>
</head>
<body>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("votedb.mdb")
SQL = "SELECT top 1 * From rosta ORDER BY ID DESC"
Set RecSet = Connect.Execute(SQL)
If RecSet.EOF Then
%>
Inga Omröstningar för tillfället...
<%
Response.Write "<HR>Frågan: " & Recset("fraga") & "<br>Svar:<br>"
For loopCount = 1 To 10
If recset("svar" & loopCount) = "" Then
Exit For
Response.Write "<a href=""omrostning.asp?rosta=" & loopCount & """>" & recset("svar" & loopCount) & "</a><br>"
Next
End If
RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>
<hr>
<a href="omrostning.asp?visa=resultat">Visa resultat</a>
<a href="omrostning_admin.asp?admin=login">Ändra Omröstning</a>
</body>
</html>
------------------
Das Dunkhopf...
PaceMedlem sedan juni 20019 024 inlägg If recset("svar" & loopCount) = "" Then
Exit For
skall skrivas på en rad:
If recset("svar" & loopCount) = "" Then Exit For
------------------
Peter D
Så nu funkar allt...
Utom en sak....
Koden blir så här:
<html>
<head>
<title>Omröstning - _ _ _ _ _ _.nu</title>
</head>
<body>
Frågan:Testar jag?<br>
Svar:<br>
<a href="omrostning.asp?rosta=1">Ja</a><br><a href="omrostning.asp?rosta=2">Nej</a><br><a href="omrostning.asp?rosta=3"></a><br><a href="omrostning.asp?rosta=4"></a><br><a href="omrostning.asp?rosta=5"></a><br><a href="omrostning.asp?rosta=6"></a><br><a href="omrostning.asp?rosta=7"></a><br><a href="omrostning.asp?rosta=8"></a><br><a href="omrostning.asp?rosta=9"></a><br><a href="omrostning.asp?rosta=10"></a><br>
<hr>
<a href="omrostning.asp?visa=resultat">Visa resultat</a>
<a href="omrostning_admin.asp?admin=login">Ändra Omröstning</a>
</body>
</html>
Och som du ser blir det en massa radbrytningar kan jag bli av med dom på något sätt?
------------------
Das Dunkhopf...
PaceMedlem sedan juni 20019 024 inlägg Menar du <br>? :q
------------------
Peter D
Japp
------------------
Das Dunkhopf...
PaceMedlem sedan juni 20019 024 inlägg Som jag skrev innan, recset kan vara lite kinkigt ibland, testa detta:
If IsEmpty(recset("svar" & loopCount)) OR IsNull(recset("svar" & loopCount)) OR recset("svar" & loopCount) = "" Then Exit For
------------------
Peter D
Tack så himla mycket fungerar asbra nu...
------------------
Das Dunkhopf...