T Thresher Medlem sedan nov. 2003 15 inlägg Frågan 18 nov. 2003 12:43 #1 Har en standard-gästbok som varje inlägg läggs under varandra i en tabell med 1 column.
Hur ska man göra för att t.ex. få så att inläggen läggs två på bredden (2 columner) istället och sedan byggs på så nedåt?
Vart ska man lägga rsQuery.MoveNext och hur ska den se ut?
Engine^ Medlem sedan dec. 2000 3 887 inlägg Det finns många lösningar på det, en kan vara såhär
strSQL = "SELECT strMessage FROM tblGuestbook"
objRS.Open strSQL, objConn, 1
Response.Write "<table><tr><td colspan=2>Gästbok</td></tr><tr>"
blnNewRow = False
While Not objRS.EOF
If blnNew Row Then Response.Write "</tr><tr>"
Response.Write "<td>" & objRS("strMessage") & "</td>"
blnNewRow = Not blnNewRow
objRS.MoveNext
Wend
Response.Write "</tr></table>"
red.
Jag kom genast på att om det är ett ojämnt antal poster , så måste den sista utskrivna cellen ha en colspan=2 annars blir tabellen knasig.
En lösning för det med min kod är att innan den sista Response.Write lägga till följande
If objRS.RecordCount Mod 2 = 1 Then Response.Write "<td></td>"
T Thresher Medlem sedan nov. 2003 15 inlägg Om man skulle göra likadant på "varusidan" vart ska det läggas in i denna kod:
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<form name="form1" method="post" action="order.asp?catid=<%= Int(Request.Querystring("catid")) %>"><tr>
<td class="headertext" colspan="2"><%= TraceHistory %></td>
</tr>
<tr>
<td width="130" class="headertextalt"> </td>
<td class="headertextalt">Produkt information</td>
</tr>
<%
Set rsQuery = Con.Execute("SELECT * FROM Products WHERE CatID=" & Int(request.Querystring("catid")) & " ORDER BY SortID DESC")
If rsQuery.EOF Then
%>
<tr>
<td width="130" class="normaltext">Inga varor</td>
<td></td>
</tr>
<%
Else
c = 0
While Not rsQuery.EOF
%>
<tr>
<td width="130">
<%
If rsQuery("Picture") = "-" THen
%>
<img src="images/nopic.gif" width="120" height="120" border="1">
<%
Else
%>
<img src="../../db/bilder/<%= rsquery("Picture") %>" width="120" height="120" border="1" heigth="50">
<%
End If
%>
</td>
<td valign="top" class="normaltext"> <font class="normaltextlarge"><%= rsQuery("Productname") %>
<%
If IsAuth Then
%>
[<a href="admin_delete_item.asp?item=<%= rsQuery("ID") %>">Ta bort</a>]
[<a href="admin_edit_item.asp?item=<%= rsQuery("ID") %>&catid=<%= rsQuery("CatID") %>">Ändra</a>]
<%
End If
%>
</font><br>
<%= rsQuery("ProductIngress") %>
<br>
<br>
Pris:<font color="#FF0000"><strong> <%= rsQuery("Price") %> :-</strong><br>
</font> <br>
<%
If rsQuery("ProductText") <> "" Then
%>
<a href="info.asp?catid=<%= rsQuery("CatID") %>&item=<%= rsQuery("ID") %>">Mer information »</a>
<%
End If
%>
<br>
<br>
Antal
<input name="<%= rsquery("ID") %>" type="text" class="formfield" id="<%= rsquery("ID") %>" value="<%= GetByVareID(rsQuery("ID")) %>" size="1" maxlength="5">
st.
<input type="submit" name="Submit" value="Köp" class="button" onFocus="blur()">
</td>
</tr>
<%
c = c + 1
rsQuery.MoveNext
Wend
End If
%>
</form>
</table>
Engine^ Medlem sedan dec. 2000 3 887 inlägg <%
Else
c = 0
Response.Write "<tr>"
While Not rsQuery.EOF
If c Mod 2 = 1 Then Response.Write "</tr><tr>"
Response.Write "<td width=130>"
If rsQuery("Picture") = "-" Then
Response.Write "<img src=""images/nopic.gif"" width=120 height=120 border=1>"
Else
Response.Write "<img src=""../../db/bilder/" & rsquery("Picture") & " width=120 height=120 border=1 heigth=50>"
End If
Response.Write "</td><td valign=top class=normaltext><font class=normaltextlarge>" & rsQuery("Productname")
If IsAuth Then
Response.Write "<a href=""admin_delete_item.asp?item=" & rsQuery("ID") & ">Ta bort</a>]"
Response.Write "[<a href=""admin_edit_item.asp?item=" & rsQuery("ID") & "&catid=" & rsQuery("CatID") & ">Ändra</a>]"
End If
Response.Write "</font><br>" & rsQuery("ProductIngress") & "<br><br>"
Response.Write "Pris:<font color="#FF0000"><strong>" & rsQuery("Price") & " :-</strong><br></font><br>"
If rsQuery("ProductText") <> "" Then
Response.Write "<a href=""info.asp?catid=" & rsQuery("CatID") & "&item=" & rsQuery("ID") & ">Mer information »</a>"
End If
Response.Write "<br><br>Antal <input name=" & rsquery("ID") & " type=text class=formfield id=" & rsquery("ID") & " value=" & GetByVareID(rsQuery("ID")) & " size=1 maxlength=5>st."
Response.Write "<input type=submit name=Submit value=Köp class=button onFocus=""blur()""></td>"
c = c + 1
rsQuery.MoveNext
Wend
End If
If c Mod 2 = 1 Then Response.Write "<td></td>"
Så möjligen...
T Thresher Medlem sedan nov. 2003 15 inlägg Microsoft VBScript compilation error '800a0401'
Expected end of statement
/test/include_listitems.asp, line 42
Response.Write "Pris:<font color="#FF0000"><strong>" & rsQuery("Price") & " :-</strong><br></font><br>"
----------------------------------^
Ingen som vet vad som är fel eller hur koden ska vara?
@nders Medlem sedan juni 2000 32 967 inlägg Du kan inte ha citationstecken rakt av inne i strängen, då tolkar ASP-tolken det som att strängen avslutas. Citationstecken escapear du med citationstecken.
Response.Write "Pris:<font color=""#FF0000""><strong>" & rsQuery("Price") & " :-</strong><br></font><br>"
Mvh
T Thresher Medlem sedan nov. 2003 15 inlägg Själva scriptet jag fick av dig engine^ fungerar tyvärr inte. Det blir precis som innan (att det byggs på nedåt) + att ingen <font> fungerar.
Engine^ Medlem sedan dec. 2000 3 887 inlägg Att ingen font fungerar beror väl på det @nders sa och att det byggs på neråt beror på något annat :)
Jag har väl som vanligt missat något som egentligen är enkelt.
<%
Else
c = 0
Response.Write "<table><tr>"
While Not rsQuery.EOF
If c Mod 2 = 1 Then Response.Write "</tr><tr>"
Response.Write "<td width=130>"
If rsQuery("Picture") = "-" Then
Response.Write "<img src=""images/nopic.gif"" width=120 height=120 border=1>"
Else
Response.Write "<img src=""../../db/bilder/" & rsquery("Picture") & """ width=120 height=120 border=1 heigth=50>"
End If
Response.Write "</td><td valign=top class=normaltext><font class=normaltextlarge>" & rsQuery("Productname")
If IsAuth Then
Response.Write "<a href=""admin_delete_item.asp?item=" & rsQuery("ID") & """>Ta bort</a>]"
Response.Write "[<a href=""admin_edit_item.asp?item=" & rsQuery("ID") & "&catid=" & rsQuery("CatID") & """>Ändra</a>]"
End If
Response.Write "</font><br>" & rsQuery("ProductIngress") & "<br><br>"
Response.Write "Pris:<font color=""#FF0000""><strong>" & rsQuery("Price") & " :-</strong><br></font><br>"
If rsQuery("ProductText") <> "" Then
Response.Write "<a href=""info.asp?catid=" & rsQuery("CatID") & "&item=" & rsQuery("ID") & """>Mer information »</a>"
End If
Response.Write "<br><br>Antal <input name=" & rsquery("ID") & " type=text class=formfield id=" & rsquery("ID") & " value=" & GetByVareID(rsQuery("ID")) & " size=1 maxlength=5>st."
Response.Write "<input type=submit name=Submit value=Köp class=button onFocus=""blur()""></td>"
c = c + 1
rsQuery.MoveNext
Wend
End If
If c Mod 2 = 1 Then Response.Write "<td></td><td></td>"
Response.Write "</tr></table>"
Nu har jag lagt till några citationstecken, som fattades och jag har även bakat in den här produktlistan i en egen tabell i tron att det ska synas bättre hur jag tänkt. Vill du köra utan denna tabell måste du tänka på att varje rad består av fyra celler. Alltså kan dom som är ovan och under behöva colspan=i .
Jag hoppas att det här fungerar bättre.
T Thresher Medlem sedan nov. 2003 15 inlägg Fonterna är tillbaka , men ingen skillnad i "rad bygget"
Engine^ Medlem sedan dec. 2000 3 887 inlägg Ett tips:
Kolla igenom den html som genereras, så kanske du kan förklara vad som inte stämmer eller lösa det själv.
T Thresher Medlem sedan nov. 2003 15 inlägg Första raderna i koden som jag angav i
>> http://www.webforum.nu/showthread.php?s=&postid=749408#post749408 <<
+ din kod ger följande html :
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<form name="form1" method="post" action="order.asp?catid=37"><tr>
<td class="headertext" colspan="2"><a href='default.asp'>Home</a> > <a href='show.asp?catid=37'>test</a></td>
</tr>
<tr>
<td width="130" class="headertextalt"> </td>
<td class="headertextalt">Produkt information</td>
</tr>
<table><tr><td width=130><img src="bilder/test.jpg" width=120 height=120 border=1 heigth=50></td><td valign=top class=normaltext><font class=normaltextlarge>testvara2</font><br>Lite<br><br>Pris:<font color="#FF0000"><strong>100 :-</strong><br></font><br><a href="info.asp?catid=37&item=120">Mer information »</a><br><br>Antal <input name=120 type=text class=formfield id=120 value=0 size=1 maxlength=5>st.<input type=submit name=Submit value=Köp class=button onFocus="blur()"></td></tr><tr><td width=130><img src="bilder/test2.gif" width=120 height=120 border=1 heigth=50></td><td valign=top class=normaltext><font class=normaltextlarge>testvara</font><br>lite mindre info här<br><br>Pris:<font color="#FF0000"><strong>100 :-</strong><br></font><br><a href="info.asp?catid=37&item=119">Mer information »</a><br><br>Antal <input name=119 type=text class=formfield id=119 value=0 size=1 maxlength=5>st.<input type=submit name=Submit value=Köp class=button onFocus="blur()"></td></tr></table>
</form>
</td>
</tr>
</table>
Engine^ Medlem sedan dec. 2000 3 887 inlägg Du kan väl testa flytta denna rad
If c Mod 2 = 1 Then Response.Write "</tr><tr>"
till strax ovanför
c = c + 1