webForumDet fria alternativet

IF-sats

ASP

20 svar · 457 visningar · startad av magnusfeldth

Medlem sedan jan. 20034 480 inlägg
Frågan#1

Nu har jag lärt mig en del asp, dock har jag inte gjort något med if-satser än, så det skulle jag behöva ha ett exempel på...
Vad jag vill göra är att beroende på om en kolumn i en databas är =1 eller =2 ha två olika bakgrundsfärger i en tabell...
det som skall göras är en nyhetslista och beroende på värdet i kolumnen så blir bakgrundsfärger olika (en mörk en ljus).... typ så här:

<tr>
                    <td width="5" bgcolor="#9FA989" valign="top">
                    <h1>&nbsp;</h1>
                    </td>
                    <td width="347" valign="top" onMouseOver="this.style.background='#DFE5D1'" onMouseOut="this.style.background='#FFFFFF'">
                    <b>Så firade vi jul på flykt undan Per Gessle fan clubs mördartrupper.</b><h2>
                    - Morsning, korsning flyktdagbok</h2>
                    </td>
                  </tr>
                  <tr>
                    <td width="5" bgcolor="#788068" valign="top">
                    <h1>&nbsp;</h1>
                    </td>
                    <td width="347" valign="top" onMouseOver="this.style.background='#DFE5D1'" onMouseOut="this.style.background='#FFFFFF'">
                    <h3><b>Skriv under vår protestlista - behåll tetra-packen!</b></h3>
                    <h2>Det finns inget som är mer manligt än att dricka juice 
                    eller mjölk direkt ur en tetra-pack flaska... Men nu ser vi 
                    hur den populära förpackningen är på väg att försvinna. 
                    Skriv under vår protestlista så att detta stoppas!</h2>
                    </td>
                  </tr>

ni kan titta här så förstår ni hur det ungefär kommer att se ut, https://www.vitatubsockor.nu/index4.asp

fråga om ni inte förstår...

Medlem sedan mars 20021 889 inlägg
#2

Det kanske inte är det bästa att lägga det i en databastabell, i och med att det bara handlar om ett ända värde (och en ända rad)?
Du skulle kunna använda en textfil i stället och i denna lagra alla variablar som har med din hemsida att göra.

:)

Medlem sedan jan. 20034 480 inlägg
#3

??? Quoi???
Jag tror att du missuppfattat mig, databasen skall endast innehålla värdet (kategoriID), IF-satsen skall ligga på sidan...

Medlem sedan maj 20023 372 inlägg
#4

Här är ett exempel:
Byt ut <TD bgcolor="<%=color%>"> mot databasvariabeln.

color = "#C9C9C9"

Do until RecSet.EOF 

if color = "#C9C9C9" then color = "#FFFFFF" else color = "#C9C9C9"

%>
<TABLE border=0 width="500" cellpadding="0" cellspacing="0">
<TR>
<TD bgcolor="<%=color%>">

				
Titel: <b><%=RecSet("titel")%></b>, <%=RecSet("forfattare")%>,<%=RecSet("saljespris")%><%=RecSet("kopespris")%> kr<BR>

</td>
</tr>
<%RecSet.MoveNext 
    Loop 
%>
Medlem sedan jan. 20034 480 inlägg
#5

så på min sida skulle det bli något i stil med:

<% 
if RecSet ("KategoriID") = 1
then color = "#9FA989"
elseif
if RecSet (KategoriID") = 2
then color = "#788068" 
endif%>
<td width="3" bgcolor="<%color%>" valign="top">
</td>
<td width="347" valign="top" onMouseOver="this.style.background='#DFE5D1'" onMouseOut="this.style.background='#FFFFFF'">
<b><%RecSet ("Rubrik") %></b>
<h2><%RecSet ("Ingress") %></h2>
</td>
</tr>
<%RecSet.Movenext
loop
%>

nåt sånt kanske? jag kan testa det först på söndag kväll, nämligen...

Medlem sedan maj 20023 372 inlägg
#6

Berätta hur det gick då. :)

Medlem sedan jan. 20034 480 inlägg
#7

det vet jag ju först på söndag... (läs ovan)... but i will let you guys know!

Medlem sedan maj 20023 372 inlägg
#8

Menade "då" på söndag ju. :)

Medlem sedan jan. 20034 480 inlägg
#9

Pellefant skrev:

Menade "då" på söndag ju.

Okej, jag uppfattade "då" i betydelsen "kom igen nu då, berätta nu då"... :-)

Medlem sedan sep. 2002538 inlägg
#10
<%
    ''Innan loopen har börjat är färgen = ""
    Dim Color
      Color = ""
   ''Öppna RecSet här..
           ''Ungefär; Set RecSet = Connect.Execute("SELECT * FROM tabell")

   ''Påbörja en loop som skall loopa fram alla nyheter
      Do Until RecSet.Eof

    ''Bestäm färg här:

    If RecSet ("KategoriID") = 1 Then
     Color = "#9FA989"
    ElseIf RecSet ("KategoriID") = 2 Then
     Color = "#788068"
    End If

        Response.Write("<td width=""3"" bgcolor="""&Color&""" valign=""top"">" & vbcrlf)
        Response.Write("</td>" & vbcrlf)
        Response.Write("<td width=""347"" valign=""top"" onMouseOver=""this.style.background='#DFE5D1'"" onMouseOut=""this.style.background='#FFFFFF'"">" & vbcrlf)
        Response.Write("<b>"&RecSet("Rubrik")&"</b>" & vbcrlf)
        Response.Write("<h2>"&RecSet("Ingress")&"></h2>" & vbcrlf)
        Response.Write("</td>" & vbcrlf)
        Response.Write("</tr>")

RecSet.Movenext
Loop
%>

Rättade din kod lite :)

Medlem sedan jan. 20034 480 inlägg
#11

alj skrev:

''Påbörja en loop som skall loopa fram alla nyheter
Do Until RecSet.Eof

Jag skall bara ha de fem senaste nyheterna... då ändrar jag väl bara recsetsatsen till Select top 5 from tabell order by ID... eller? då kan jag väl strunta i Do until-satsen?

Medlem sedan jan. 20034 480 inlägg
#12

alj´s kod funkar... men vad är det för fel på min?

<%
Dim Color
      Color = ""
      
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("tubsockan.mdb")

	Set RecSet = Server.CreateObject("ADODB.Recordset")
	SQLsats = "SELECT TOP 5 * FROM sockan ORDER by ID"
	RecSet.Open SQLsats, Connect, adOpenStatic, adLockOptimistic
%>

<body>

<table border="0" cellspacing="1" width="360" id="AutoNumber1">
  <tr>
    <td width="3"></td>
    <td width="352"></td>
  </tr>
<% Do Until RecSet.EOF 

If RecSet ("KategoriID") = 1 Then
Color = "#9FA989"
ElseIf RecSet ("KategoriID") = 2 Then
Color = "#788068"
End If %>
<tr>
<td width="3" bgcolor="<% "color" %>" valign="top">
</td>
<td width="347" valign="top" onMouseOver="this.style.background='#DFE5D1'" onMouseOut="this.style.background='#FFFFFF'">
<b><% RecSet ("Rubrik") %></b>
<h2><% RecSet ("Ingress") %></h2>
</td>
</tr>
<% RecSet.Movenext
loop
Recset.Close
Connect.Close

Set Recset = Nothing
Set Connect = Nothing
%>
Medlem sedan mars 20015 287 inlägg
#13

På vilket sätt fungerar det inte?

Medlem sedan jan. 20034 480 inlägg
#14

kan tilläggas att jag prövat både med: "color" och endast color...

felmeddelandet när man har med citattecken är

Microsoft VBScript compilation error '800a0400'

Expected statement

/klick/startsidan.asp, line 38

"color"

jag vet att det inte skall vara med citattecken, men hur faen skall det se ut?

Medlem sedan mars 20015 287 inlägg
#15

Ah.

<td width="3" bgcolor="<% =color %>" valign="top">

Eller då:

<td width="3" bgcolor="<% response.write color %>" valign="top">
Medlem sedan jan. 20034 480 inlägg
#16

på det första kodförslaget blir det felmeddelande som säger att recsetet på rad 48 inte stämmer, det är det om RecSet ingress,

den andra blir bara 500 internt serverfel

what am i doing wrong... or does God just hate me?

Medlem sedan mars 20015 287 inlägg
Medlem sedan jan. 20034 480 inlägg
#18

felmeddelandet med =color

Microsoft VBScript runtime error '800a01c2' 

Wrong number of arguments or invalid property assignment: 'RecSet' 

/klick/startsidan.asp, line 41
Medlem sedan mars 20015 287 inlägg
#19

Å vilken rad är det? Kanske lika bra att du postar hela koden igen.

Medlem sedan jan. 20034 480 inlägg
#20

hittade felet själv, hade glömt "=" i <% = RecSet ("Rubrik") %>...
tack för hjälpen solbulle, svar på 5 minuter är otroligt bra... detta förtjänar speciellt tack i min sidas credits när den är klar...

263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)