26. januar 2002 - 19:56Der er
16 kommentarer og 1 løsning
Checkbox til visning af indhold i database. samt ændring af checkbox value
Men det failer 2 steder... 1. sted Koderne er: <--- bla bla forbindelse = OK <%While not objRec.EOF%>... .....<td width="20%"><% = "<a href=""retsb.asp?id=" & objRec("OrderID") & """>" & objRec("onoff")%> </td> <---- hvor retsb.asp er denne fil. OrderID = autonr. og onoff er den tabel i databasen der et true/false felt. Det ovenstående giver et output på skærmen med henholdvis true og false i tekstform(jeg har sat dem direkte i databasen). Så har jeg prøvet at få det vist via en checkbox, enten hvor der er "hak" i eller ej: <--- ...forsat...<td width="20%"><% if objRec("onoff") = true Then Response.write "<input type='checkbox' value='true'>" else Response.write "<input type='checkbox' value='false'>" end if%> ...bla bla bla...---> Men det virker ikke. Der er ingen af dem(6 records) der har et hak i checkbox'en, og jeg har sat 4 af dem til true i databasen. Men de 4 vises i tekstform til true og de 2 sidste til false(øverste eks.) som det er i databasen... mystisk?!.
2. sted Her kan jeg ikke få skrevet ændringerne til databasen, om der er sat "hak" i en checkbox eller ej. Koderne er: <--- forsat forbindelse fra ovenstående valg(OrderID) vis alt(*) = OK ...bla.... Response.Write "<FORM ACTION=""" & "retnusb.asp" & """>" while Not objRec.EOF Response.Write "<TR><TD>checkbox:</TD><TD><INPUT TYPE=checkbox VALUE=""" & objRec("onoff") & """ NAME=onoff><br>" <---- hvor retnusb.asp er den fil ændringerne sendes til. Outputtet viser bare at der ikke er sat et "hak" i checkbox'en, selvom jeg har valgt en record der er sat til true?!
Ved tryk på en submit knap sendes formularen til ressbnu.asp, hvor koderne er til at skrive update recordsettet, det virker også bortset fra checkboxen, hmmm..
Jeg gør et eller andet forkert her. Jeg syntes jeg har prøvet at ændre true til 1 og false til 0 samt ændret if true til if "true"..... når derfor til EKSPERTEN ...igen ... denne smøre er vist lidt lang, men forhåbenlig præsist beskrevet??
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
Jeg plejer at gøre følgende. Felter i min database som refererer til checkbokse, har jeg sat til tekstfelter med standarden "checked". Når jeg så laver udtrækket, så gør jeg følgende:
Dette betyder, at hvis den er sat til "checked" i databasen, så er den også checket af i udtrækket, og hvis den er blank i databasen, ja så er den ikke checket af. På samme måde gør du så når du gemmer i databasen, hvis dit formfelt er sat til "checked", ja så sættes den til checked i databasen. Du skal blot huske på, at den pågældende række i din database skal tillade nullængde.
<--- ...forsat...<td width="20%"><% if objRec("onoff") = true Then Response.write "<input type='checkbox' checked value='ligegyldig'>" else Response.write "<input type='checkbox' value='ligegyldig'>" end if%> ...bla bla bla...---> I html er værdien i en checkbox ligegyldig. Til visning er det parametren checked der angvier om den er sat eller ej.
Når du skal gemme checkbox i databsen: if Request.Form("checkbox1") <> "" then RS("checkbox1") = true else RS("checkbox1") = false end if
coltau det virker... med at få vist om de er tjekket af.... FEDT TAAAK... men det failer stadigvæk i update stringen... jeg har lavet : <-- bla bla bla... if Request.QueryString("onoff") <> "" then 'Form eller QueryString ingen forskel objrec("onoff") = true else objrec("onoff") = false end if <--- bla bla bla.. Set objRec = Server.CreateObject ("ADODB.Recordset") objRec.Open "UPDATE BG1 set onoff='" & onoff & "', link='" & link & "' ...bla bla bla... where OrderID=" & hvilken, Session("DB") <--- Den fejl jeg får er: Error Type: Microsoft VBScript runtime (0x800A000D) Type mismatch <--- Det gør ingen forskel om jeg har den tjekket af eller ej, fejlen er bare to liner op eller nede.... hmmm...
Jeg prøver lige med. Request.QueryString("onoff") istedet for objrec("onoff")
if Request.QueryString("onoff") <> "" then onoff = true else onoff = false end if
men så er det her det failer: Set objRec = Server.CreateObject ("ADODB.Recordset") objRec.Open "UPDATE BG1 set onoff='" & onoff & "', link='" & link & "' ...bla bla bla... where OrderID=" & hvilken, Session("DB") <-- den fejl jeg får er: Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. <----hmm..... ja jeg er blank over for dette. Jeg ville mene det skulle virke, men jeg overser noget. hvad er det der mismatch'er?????
det virker nu. Har lavet onoff om til tekstfelt istedet for checkbox. Tal for hjælpen =:)
Og så fandt jeg ud af, at jeg mangler at kunne updatere flere "checkbox/tekstfelt" på samme til og til forskellige tabeller. Skal jeg oprette et nyt spg. for det?? Hvis jeg ikke har fået svar inden 2 dage oprettes et nyt spg.
Med hensyn til dit nye problem så er jeg ikke sikker på at jeg forstår - men skal du anvende flere forskellige checkboxe i samme form kan de adskilles/genkendes med name eller value.
Jeg prøver at lave en side(til admins), hvor der bliver vist fornavn, efternavn og tlfnr og så tjekboxen. Tjekboxen's funktion er så, at hvis checkbox = True skal de vises på en anden side(ses af brugerne). OK, jeg kan få vist siden, men hvordan gemmer jeg ændringerne(True/False) af, måske 20 poster fra datbasen, i et submit-klik(form)?
Det siden skal, er jo at sørge for at admins kan ændre, om medlemmer skal kunne ses udaftil(ses af brugere), via disse checkboxe. Admins skal bare kunne "hakke" af om medlemmer skal vises og trykke opdater.
Hvordan gøres dette??? Jeg ved ikke hvordan man skriver/UPDATE til flere poster i en database på én gang. Jeg har en database, hvori der er én kolonne til disse True/False (tekstfelt) værdier.
hm.... er det forklaret så det kan forståes??? <---- Response.write "<input type='checkbox' name='C1' value='C1'><br>" Response.write "<input type='checkbox' name='C2' value='C2'><br>" <---- Kan disse sætninger skelne mellem til hvilke poster den enkelte checkbox tilhører i databasen??? nej vel....??
Jeg skal vel have noget med autonummer med i UPDATE-sætningen pr. post..... hvordan?? Jeg har trukket autonr("OrderID") ud af databasen så det er "bare" at genbruge det, til UPDATE-sætningen...... Skal jeg lave en UPDATE-sætning pr. post jeg vil UPDATE...???
Det kan lade sig gøre og du skal lave en sql-sætning for hver sletning - men fortvivl ikke - det kan gøres sådan:
Dine checkboxe skal laves sådan: Response.Write("<input type='checkbox' name='delit" & RS("OrderID") & "'>") Dermed bliver name for checkboxene forskellige: (delit1, delit2, delit3 osv.) Når der så skal slettes kan du anvende denne sub:
sub DeleteAllChecked ' *** Gennemkør felter *** For Each key in Request.Form strKey = LCase(Mid(key, 1, 5)) strOrderID = Right(key, Len(key) - 5) ' *** Feltet skal være et "delit"-checkbox/OrderID skal være <> 0 If (strKey = "delit") and (strOrderID <> "") then ' *** Slet denne OrderID *** Conn.Execute("DELETE FROM tabel WHERE ID = " & strOrderID) End if Next end sub
jeg prøver stadigvæk, og vil gerne prøve selv noget tid endnu :) Det er jo udfordring... hehe og det kan jeg lide... og når jeg går helt i stå ja så www.eksperten.dk FEDT :D
Synes godt om
Ny brugerNybegynder
Din løsning...
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.