Du måste lägga in färgningskoden i din loop, annars får aldrig variabeln color något nytt värde.
mvh,
13 svar · 464 visningar · startad av Gimbo
Hejsan,
jag använder följande metod för att få färg på varannat gästboksinlägg men det fungerar inte, jag får samtliga tabeller att vara vita, så här ser det ut:
<%
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("datab.mdb")
SQL = "SELECT * From gbook ORDER BY Datum DESC"
Set rs = db.Execute(SQL)
count = count + 1
If count Mod 2 = 0 then
color = "#AEAEFF"
Else
color = "#FFFFFF"
End If
%>
och html koden plus läsningen från databasen ser ut på följande sätt:
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<%
Do Until rs.EOF
%>
<%
meddelande=Replace(rs("meddelande"),vbCrLf, "<br>")
%>
<tr>
<td width="300" bgcolor="<%=color%>">
<b><%=rs("amne")%></b> <img src="<%=rs("smile")%>.gif"><br>
<%=meddelande%>
<tr>
<td width="300" bgcolor="<%=color%>" style="border-bottom: 1px solid #000000;"><b><%=rs("namn")%></b> | <%=rs("datum")%></td>
</tr>
<p>
</td>
</tr>
<%
rs.MoveNext
Loop
%>
Du måste lägga in färgningskoden i din loop, annars får aldrig variabeln color något nytt värde.
mvh,
Och hur går man tillväga för att göra det?
count = 0
Do Until rs.EOF
count = count + 1
If count Mod 2 = 0 then
color = "#AEAEFF"
Else
color = "#FFFFFF"
End If
meddelande=Replace(rs("meddelande"),vbCrLf, "<br>")
%>
<tr>
<td width="300" bgcolor="<%=color%>">
<b><%=rs("amne")%></b> <img src="<%=rs("smile")%>.gif"><br>
<%=meddelande%>
<tr>
<td width="300" bgcolor="<%=color%>" style="border-bottom: 1px solid #000000;"><b><%=rs("namn")%></b> | <%=rs("datum")%></td>
</tr>
<p>
</td>
</tr>
<%
rs.MoveNext
Loop
%>
Måste säga att hela sidan knasa sig nu, tabeller går över varandra och allt är knas
Har du missat något %> eller så?
Nope, men jag tror att du glömde i din kod som du visa mig :-) eller det kanske inte ska vara ngn <% i början
så här ser min kod ut nu:
<%
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("datab.mdb")
SQL = "SELECT * From gbook ORDER BY Datum DESC"
Set rs = db.Execute(SQL)
count = 0
Do Until rs.EOF
count = count + 1
If count Mod 2 = 0 then
color = "#AEAEFF"
Else
color = "#FFFFFF"
End If
meddelande=Replace(rs("meddelande"),vbCrLf, "<br>")
%>
och så här ser det ut längre ner:
[kod]
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="300" bgcolor="<%=color%>">
<b><%=rs("amne")%></b> <img src="<%=rs("smile")%>.gif"><br>
<%=meddelande%>
<tr>
<td width="300" bgcolor="<%=color%>" style="border-bottom: 1px solid #000000;"><b><%=rs("namn")%></b> | <%=rs("datum")%></td>
</tr>
<p>
</td>
</tr>
<%
rs.MoveNext
Loop
%>
</table>
Och nur ser sidan inte alls bra men när jag tar bort Do until i början av koden och lägger in den efter taggen med table så ser sidan bra ut igen men fortfarande inte färg på varannan rad...
Du får nog gå igenom din html-tabell. Du har en <tr>, sedan en <td>, sedan en <tr> igen.
Till att börja med se till att den tabellen är korrekt.
Mvh,
Har fixat html tabellen men det fungerar fortfarande inte med färg på varannan, så här ser html tabellen ut nu:
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<% Do until rs.EOF %>
<tr>
<td width="300" bgcolor="<%=color%>">
<b><%=rs("amne")%></b> <img src="<%=rs("smile")%>.gif"><br>
<%=meddelande%>
</tr>
<tr>
<td width="300" bgcolor="<%=color%>" style="border-bottom: 1px solid #000000;"><b><%=rs("namn")%></b> | <%=rs("datum")%></td>
</tr>
<p>
</td>
<%
rs.MoveNext
Loop
%>
</table>
Byte av color måste ligga innaför do until
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<%
count = 0
Do Until rs.EOF
count = count + 1
If count Mod 2 = 0 then
color = "#AEAEFF"
Else
color = "#FFFFFF"
End If %>
<tr>
<td width="300" bgcolor="<%=color%>">
<b><%=rs("amne")%></b> <img src="<%=rs("smile")%>.gif"><br>
<%=meddelande%>
</tr>
<tr>
<td width="300" bgcolor="<%=color%>" style="border-bottom: 1px solid #000000;"><b><%=rs("namn")%></b> | <%=rs("datum")%></td>
</tr>
<p>
</td>
<%
rs.MoveNext
Loop
%>
</table>
Man tackar LarsG you'r the mään ;-)
Kolla igenom din kod igen(se markeringar)!
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<%
count = 0
Do Until rs.EOF
count = count + 1
If count Mod 2 = 0 then
color = "#AEAEFF"
Else
color = "#FFFFFF"
End If %>
<tr>
<td width="300" bgcolor="<%=color%>">
<b><%=rs("amne")%></b> <img src="<%=rs("smile")%>.gif"><br>
<%=meddelande%>[b]</td>[/b]
</tr>
<tr>
<td width="300" bgcolor="<%=color%>" style="border-bottom: 1px solid #000000;"><b><%=rs("namn")%></b> | <%=rs("datum")%></td>
</tr>
[b]<p>
</td>[/b]
<%
rs.MoveNext
Loop
%>
</table>
Nja, så här ska nog det se ut, om det ska vara mest felfritt...
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<%
count = 0
Do Until rs.EOF
count = count + 1
If count Mod 2 = 0 then
color = "#AEAEFF"
Else
color = "#FFFFFF"
End If %>
<tr>
<td width="300" bgcolor="<%=color%>">
<b><%=rs("amne")%></b> <img src="<%=rs("smile")%>.gif"><br>
<%=meddelande%>[b]</td>[/b]
</tr>
<tr>
<td width="300" bgcolor="<%=color%>" style="border-bottom: 1px solid #000000;"><b><%=rs("namn")%></b> | <%=rs("datum")%></td>
</tr>
<%
rs.MoveNext
Loop
%>
</table>
Notera att den fetmarkerade td inte alls är felaktigt använd.. Men den fetmarkerade td- och p-taggen i föregående innlägg i slutet av scriptet är borttaget i och med att dessa är felaktigt använda.