29. september 2003 - 11:15Der er
7 kommentarer og 1 løsning
Rette i en database vha. en form
Hej
Jeg skriver data til en database fra en form. Data fra form'en sendes til denne side (result.asp) og skrives derved ned i access databasen.
Jeg har en side (display_database.asp) hvor jeg kan vise data i databasen, og kunne på denne godt tænke mig at have et link på denne side, der henter data frem på en ny side i en "form", hvor de kan rettes, og derefter gemmes.
Nu giver jeg dig en række små programmmer, der viser hvordan man kan gøre det: Gem data: <% 'Denne ASP-side sørger for at gemme den indlæste 'post eller record som en række i tabellen Test i A2000.mdb. 'Derefter sendes IndRecord.asp igen til brugeren. Option Explicit Dim Conn, SQL Dim Fnavn, Enavn, Bem set Conn=server.createobject("adodb.connection") Conn.open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=c:\inetpub\wwwroot\p3\A2000.mdb" Fnavn=Request.Form("Fnavn") Enavn=Request.Form("Enavn") Bem=Request.Form("Bem") SQL="Insert Into Test (Fornavn,Efternavn,Kommentar) Values " & _ "('" & Fnavn & "','" & Enavn & "','" & Bem &"')" Conn.execute SQL Conn.close Set Conn=nothing Response.redirect("IndRecord.asp") %>
Editer data: (mon ikke det er sådan en side, du ønsker) <% 'Denne ASP-side sender den ønskede post til til editering hos brugeren. 'Brugeren kan vælge mellem at gemme resultatet eller at returnere. Dim Sortnr, ID, conn, rs SortNr=Request.QueryString("SortNr") ID=Request.Form("ID") set conn =server.CreateObject("ADODB.Connection") Conn.open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=c:\inetpub\wwwroot\p3\A2000.mdb" SQL="select * from Test where ID=" & ID set rs=conn.execute(SQL) %> <html> <script language=VBscript> Option Explicit sub Gem(n) F.ID.value=<%=ID%> F.Fn.value=n F.action="GemEditeret.asp?SortNr=" & <%=SortNr%> F.submit end sub
Og her er så en side, der kan bruges til at gemme den editerede post: <% 'Denne ASP-side gemmer den editerede post i databasen 'eller sletter posten afhængig af, om Fn er 1 eller 0. Option Explicit Dim conn, SQL, ID, Fnavn, Enavn, Bem, SortNr, Fn SortNr=Request.QueryString("SortNr") ID=Request.form("ID") Fn=Request.form("Fn") Fnavn=request.form("Fnavn") Enavn=request.form("Enavn") Bem=request.form("Bem") set conn =server.CreateObject("ADODB.Connection") Conn.open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=c:\inetpub\wwwroot\p3\A2000.mdb" if Fn="1" then SQL="Update Test set Fornavn='" & Fnavn & "' ,Efternavn='" & _ Enavn & "', Kommentar='" & Bem & "' where ID=" & ID elseif Fn="0" then SQL="Delete * from Test where ID=" & ID end if if SQL<>"" then conn.execute SQL conn.close set conn=nothing Response.redirect("VisAlt3.asp?SortNr=" & SortNr) %>
Siden skal ikke sendes til brugeren for at vedkommende kan rette i det. Det er en anden bruger der kan gå ind i databasen og rette en status via en side.
Variablerne fylder du bare med info fra databasen, eller bruge directe dit recordset/database array til at fylde det ind i formen med.... på update siden henter du bare som altid form informationen ind med Request.Form("field1") og så bruger UPDATE istedet for INSERT INTO strengen til din database :)
Hej Senariet er følgende: En bruger tilmeder sig og får automatisk status "new" i feltet "status" i databasen (den er klaret). Den ansvarlige som ikke har adgang til databasen, skal kunne gå ind via en homepage, og kunne ændre dette ene felt til f.eks approved eller not approved osv.
Men det er jo præcis det de to sider editer og gem editeret kan gøre. Det er kun at rette dem til din databse.
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.