Vad är det jag inte ser? [Löst]
<code>
If RS("id")=BildId Then
strBildId = " checked"
Else
StrBildId = ""
End If
</code>
I det här fallet är bildID 31 men den vill inte skriva ut även fast RS("id") också är 31. Det märkliga är att om jag byter ut strBildId mot siffrorna 31 så fattar den och sriver ut "Checked".
Vad är det jag missar?
/Andreas
Svara
Sv: Vad är det jag inte ser?
Vad är RS("ID") i databasen är det tal eller text?
Du kan prova med att göra om det till tal med cInt(RS("ID")) annars.
/Anna-Karin
Svara
Sv: Vad är det jag inte ser?
Funkade inte det heller. Men det jag inte förstår är att den fattar om jag skiver 31 men inte när jag skriver strBildId. Har skrvit ut strBild så jag vet att det är 31 i den.
Svara
Sv: Vad är det jag inte ser?
det verkar som om du flummar runt lite med dina variabelnnamn
strBild, strBildID, bildID....
Kolla så att de stämmer
Svara
Sv: Vad är det jag inte ser?
Du får tänka efter. Det du gör ärr att du tömmer din variabewl efter första kontrollen. Försök istället med:
<code>
If RS("id")=strBildId Then
Response.Write " checked"
End If
</code>
Svara
Sv: Vad är det jag inte ser?
OK...här kommer lite till:
<code>
Dim objRS
Set objRS = Server.CreateObject ("ADODB.Recordset")
objRS.Open "SELECT * FROM gfx ORDER BY filename DESC",_
strConnect, adOpenForwardOnly, adLockReadOnly, adCmdText
If objRS.EOF Then
Response.Write "<br><b>Ingen bilder i databasen. </b><br><br>"
Else
Response.Write "<br><b>Bilder i databasen:</b><br>Klicka på bilden för verklig storlek<br><br><br>"
While Not objRS.EOF
If objRS("Id")=BildId Then
strBildId = " checked"
End If
</code>
Jag har provat att skriva ut värdet i strBildId och det funkar. Den är inte tom mao.
Hoppas det bringar ljus i mörkret =)
Svara
Sv: Vad är det jag inte ser?
Var får du BildId ifrån? Vad är koden som skrivs ut i loopen? Som det är nu kommer den ju bara att skriva ut "checked" någonstans.
Svara
Sv: Vad är det jag inte ser?
<code>
strBildId = Request.Form("gfxId")
</code>
Sen kommer
<code>
Dim objRS
Set objRS = Server.CreateObject ("ADODB.Recordset")
objRS.Open "SELECT * FROM gfx ORDER BY filename DESC",_
strConnect, adOpenForwardOnly, adLockReadOnly, adCmdText
If objRS.EOF Then
Response.Write "<br><b>Ingen bilder i databasen. </b><br><br>"
Else
Response.Write "<br><b>Bilder i databasen:</b><br>Klicka på bilden för verklig storlek<br><br><br>"
While Not objRS.EOF
If objRS("Id")=BildId Then
strBildId = " checked"
End If
</code>
Och sen skrivs den ut:
<code>
Response.Write "<td width=120 align=left><font face=verdana size=1><b> Välj denna bild<input type=radio value='"&objRS("id")&"' name='gfxId'" & strBildId & "></td>"
</code>
Det märkliga i hela historien är att när jag skriver ut strBildId så är värdet 31. Byter jag ut strBildId mot just 31 i "If objRS("Id")=BildId Then" så fungerar det klockrent.
/andreas
Svara
Sv: Vad är det jag inte ser?
Du måste casta om bildId till en int.
if objRS("id")=cint(bildID) then
osv.
Det borde funka!
Ett annat sätt:
strBildId = Request.Form("gfxId") - 0
Då behöver du inte ändra if-satsen.
//Sune
Svara
Sv: Vad är det jag inte ser?
Testa med:
<code>
strBildId = CLng(Request.Form("gfxId"))
Dim objRS
Set objRS = Server.CreateObject ("ADODB.Recordset")
objRS.Open "SELECT * FROM gfx ORDER BY filename DESC",_
strConnect, adOpenForwardOnly, adLockReadOnly, adCmdText
If objRS.EOF Then
Response.Write "<br>Ingen bilder i databasen. <br><br>"
Else
Response.Write "<br>Bilder i databasen:<br>Klicka på bilden för verklig storlek<br><br><br>"
Do Until objRS.EOF
If objRS("Id") = strBildId Then
Response.Write "<td width=120 align=left><font face=verdana size=1> Välj denna bild<input type=radio value='" & objRS("id") & "' name='gfxId' checked></td>"
objRS.MoveNext
Exit Do
Else
Response.Write "<td width=120 align=left><font face=verdana size=1> Välj denna bild<input type=radio value='" & objRS("id") & "' name='gfxId'></td>"
End If
objRS.MoveNext
Loop
Do Until objRS.EOF
Response.Write "<td width=120 align=left><font face=verdana size=1> Välj denna bild<input type=radio value='" & objRS("id") & "' name='gfxId'></td>"
objRS.MoveNext
Loop
End If
</code>
Svara
Sv: Vad är det jag inte ser?
sataaan! Funkar inte heller. Inget av dem. Måste vara "If objRS("id")=strBildId Then" som är knasig. Men varför varför varför fungerar det när jag skriver dit samma värde som strBildId har? Jag går och lägger mig!
(Är väldigt tacksam för er hjälp, är inte arg på er =))
Kommer ni på något annat får ni JÄTTE gärna posta det.
/Andreas
Svara
Sv: Vad är det jag inte ser?
Nämen jösses!!! Körde en liten blandning av era 2 förslag och då funkade det. LYCKA!
Tack för all hjälp!
/Andreas
Svara