firstchoiceMedlem sedan okt. 2001605 inlägg
hur funkar Boolean ?
måste man göra så här? blir lite mycket kod om man skall kolla flera variablar
If Request.Form("sRead") = "true" Then
bRead = true
ElseIf Request.Form("sRead") = "" Then
bRead = false
End If
Response.Write bRead
har ett formulär med massa "checkboxar"
kryssar man i skickas "true" iväg
är det true skall Boolean variablen få värdet true, annars false
finns det något bättre sätt att göra det på?
VideMedlem sedan dec. 19996 094 inlägg
Gör en funktion av det där du skickar in värdet som argumet, sedan återger du true/false. :)
firstchoiceMedlem sedan okt. 2001605 inlägg
VideMedlem sedan dec. 19996 094 inlägg
function IsChecked(strValue)
If strValue = "true" Then
IsChecked= true
Else
IsChecked= false
End If
end function
Sedan anropar såhär:
response.write "Är den iklickad: " & IsChecked( Request.Form("sRead") )
Så kan du lätt kolla alla checkboxar genom samma funktion. :)
PalleMedlem sedan apr. 20002 716 inlägg
..typ så här tror jag Vide menar: :)
[RED]<%
Function isTrue(bStr)
If trim(bStr) = "true" Then isTrue = True Else isTrue = False
End Function
Response.Write isTrue(Request.Form("sRead"))
%>[/RED]
Denniz PoPMedlem sedan aug. 2002206 inlägg
Annars är det väll bara att använda den inbyggsa funktionen CBool() ?
VideMedlem sedan dec. 19996 094 inlägg
CBool() tar nummer argument, 0 = false och allt över är true, så med tanke på att det är text som skickas in kommer det inte att fungera. :)
Men du kan väl sätta vilket värde som skall skickas ifrån checkboxarna, så kan du få den att ge ifrån sig 0 respektive 1 så kan du använda CBool().
LarsGMedlem sedan dec. 200012 465 inlägg
Varför behövs det en funktion?
bread = Request.Form("sRead") = "true"
firstchoiceMedlem sedan okt. 2001605 inlägg
LarsG's idé funkade perfa!! som vanligt :)
Denniz PoPMedlem sedan aug. 2002206 inlägg
Vide skrev:
CBool() tar nummer argument, 0 = false och allt över är true, så med tanke på att det är text som skickas in kommer det inte att fungera. :)
Men du kan väl sätta vilket värde som skall skickas ifrån checkboxarna, så kan du få den att ge ifrån sig 0 respektive 1 så kan du använda CBool().
Är du säker på det? Jag brukar iaf använda CBool vid text. Testa att skapa temp.asp och köra denna kod:
<a href="temp.asp?action=true">action</a><br>
<a href="temp.asp?action=false">action2</a><p>
<% If CBool(request.Querystring("action")) = True Then
Response.write("True")
Else
Response.Write("False")
End If %>
Hmm... Jag kollade lite snabbt på msdn och det verkar stämma som du säger. Dock så fungerar denna kod utmärkt för mig och har alltid gjort det.
VideMedlem sedan dec. 19996 094 inlägg
Det fungerar säkert, på gott och ont. ;)
Men jag tycker att det är fel sätt angripa problemet genom kryphål i språket, jag litar inte direkt på språket när det inte gör som det står i dokumentationen.
Att det fungerar kan vara för att true motsvarar 1, och false motsvarar 0 som datatyp, men som textsträng bryter det mot dokumentationen (och logiska regler språket borde ha).
Men nu halkar jag ifrån ämnet, detta är mål för en annan diskussion. ;)
OveRRidEMedlem sedan feb. 20018 509 inlägg
LarsG skrev:
Varför behövs det en funktion?
bread = Request.Form("sRead") = "true"
Uh, va?
Engine^Medlem sedan dec. 20002 861 inlägg
Inline if-sats...
bread = (Request.Form("sRead") = "true")
är samma som
If Request.Form("sread") = true Then
bread = true
Else
bread = false
End If
VideMedlem sedan dec. 19996 094 inlägg
Alla if-satser tar uttryck som återger true/false som resultat, och "värde = värde" återger ju true/false. :)
OveRRidEMedlem sedan feb. 20018 509 inlägg
Det hade jag faktiskt inte en aning om att man kunde skriva så. :)
PalleMedlem sedan apr. 20002 716 inlägg
OveRRidE skrev:
Det hade jag faktiskt inte en aning om att man kunde skriva så. :)
Instämmer.. :h