Hallo!
> bin�res denken :-)
>
> denk einfach in bin�ren zahlen
>
>
> 1 0 1
> feld 3 | feld 2 | feld 1
>
> somit w�re dies 5. und eindeutig auf diese felder runterzurechnen....
Ja so geht's, allerdings sind Bit-Operationen in VBScript doch etwas
gew�hnungsbed�rftig.
Zun�chst die 10 Checkboxen:
for i = 1 to 10
Response.Write("<input name="cbox" value=""" & 2 ^ i & """>...")
next
Den Checkboxen werden also die Werte 1, 2, 4, 8, 16, 32, 64, 128, 256,
512 zugeordnet.
Wenn im Formular das 3. und 7. K�stchen angekreuzt wird, erh�ltst Du mit
...
cbox = cstr(Request("cbox"))
... die Zeichenkette "4,64" zur�ck.
Deinen Wert f�r die Datenbank (4 + 64 = 68) berechnest Du dann mit ...
rs.Fields("cbox").value = eval(replace(cbox, ",", "+"))
Dabei werden die Kommata durch Pluszeichen ersetzt und die Addition �ber
die EVAL-Funktion durchgef�hrt.
Um dann mit dem Wert zu rechnen, schreibst Du eine Funktion:
function BitTest(pBit, pValue)
dim lValue: lValue = 2 ^ pBit
BitTest = (lValue = (lValue and pValue))
end function
BitTest(3, 68) und BitTest(7, 68) ergeben TRUE.
So kannst Du im Formular auch wieder die entsprechenden K�stchen mit
"checked" markieren:
for i = 1 to 10
if BitTest(i, rs.Fields("cbox").value) then
lChecked = " checked"
else
lChecked = ""
end if
Response.Write("<input name="cbox" value=""" & 2 ^ i & """ & _
lChecked & ">...")
next
Freundliche Gr��e
Joachim van de Bruck
| [aspdedatabase] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp