Du bruge et array eller et dictionary object. Hvad skal du bruge det til? Hvis du har en masse "a1", "a2" osv. felter i din tabel, tyder det på et dårligt databasedesign.
Synes godt om
Slettet bruger
24. juli 2004 - 08:58#2
Dårlig databasedesign vil jeg ikke afvise - det er ikke just min stærkeste side :)
Jeg har en stor formular, der afviger iht. indholdet, afhængig af brugertype. Derfor har jeg i en HTML-table defineret samtlige felter som et regneark med kollonner a, b, c osv, der stiger i værdi for hver row.
Hvis en bestemt bruger logger på, skal der i felterne fremkomme checkbokse vist i et grafisk design
for i = 1 to 31 ("a"+i)=rs("a"+i) IF ("a"+i)=="True" THEN ("a"+i)=="<img src='jatak'>" ELSE ("a"+i)=="<img src='nejtak'>" END IF next
hvorimod en anden bruger skal have mulighed for at ændre denne værdi:
for i = 1 to 31 ("a"+i)=rs("a"+i) IF ("a"+i)=="True" THEN ("a"+i)=="<input name='"&(a+i)&"' type='checkbox' value='checkbox' checked>" ELSE ("a"+i)=="<input name='"&(a+i)&"' type='checkbox' value='checkbox'>" END IF next
Jeg ville nok foretrække at fjerne de 31 kolonner fra tabellen og i stedet benytte en seperat tabel til dette, der refererer til din primærenøgle i din eksisterende tabel. Her kan du nøjes med to kolonner. En til fremmednøglen og et talfelt, der kan rumme værdier fra 1 til 31. Indsættes en post med dertilhørende nummer, kan det betragtes som sand (flueben sat) - i modsat fald som falsk (intet flueben).
Synes godt om
Slettet bruger
24. juli 2004 - 10:23#4
Ja - du har sikkert ret - problemet er, at der i forvejen er mange poster som allerede er fyldt ud, så i denne omgang bliver databasen som den er :(
Men findes der et svar på mit spørgsmål uanset dårlig struktur eller ej. Kan jeg oprette variable dynamisk i et loop
F.eks denne i en løkke med værdi fra 1 til 31:
a1=rs("a1") IF NOT edit="True" THEN
IF a1 = "TRUE" THEN a1="<img src='ok.gif'>" ELSE a1=" " END IF
ELSE
IF a1 = "TRUE" THEN a1="<input name='a1' type='checkbox' value='True' checked>" ELSE a1="<input name='a1' type='checkbox' value='False'>" END IF
Ville det ikke være nemmest med et array, som jeg har foreslået?
Synes godt om
Slettet bruger
24. juli 2004 - 10:41#6
Det er jer der er eksperterne - så hvis du mener at et array vil være nemmest, køber jeg den - problemet er bare at jeg ikke lige ved hvordan jeg skal lave det..??
' hent data fra databasen, og put den i variablen "arr" for i = 1 to 31 arr = arr & rs("a" & i) & "," next
' fjern det sidste ",": arr = left(arr, len(arr) - 1)
' lav variablen "arr" om til et array: arr = split(arr, ",")
' check og lav indholdet om til enten "Ja" (True) eller "Nej" (False): for i = 0 to ubound(arr) if arr(i) = "True" then arr(i) = "Ja" else arr(i) = "nej" end if next
Hvis du vil have fat på a13, hedder den nu arr(12). Dvs, "arr" og "selve tallet minus 1".
Eksempler: a4 = arr(3) a31 = arr(30) osv..
Det er fordi et array starter ved 0, og ikke 1.
Synes godt om
Slettet bruger
26. juli 2004 - 10:45#13
Det ved jeg ;) Jeg er vant til at arbejde med array's i Flash Actionscript - kendte bare ikke lige syntaxen her i asp - endnu en gang tak for hjælpen :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.