02. maj 2002 - 13:50Der er
15 kommentarer og 1 løsning
opdater 3 felter i SQL DB via drop down
Jeg har en - efterhånden - rimelig stor asp-side, som jeg efterhånden er ved at miste overblikket i.. Jeg kalder en masse felter og jeg skal have mulighed for at ændre 3 af felterne (i samme asp-side) ved hjælp af nogle options i en dropdown-menu.
MIT KALD: <% If Request.Querystring ("Ordrenummer") > "0" Then %> <% Set dbOracle = CreateObject("ADODB.Connection") get_adno = request.querystring ("ordrenummer") strConn = "DSN=Oraclebak;Database=pub;uid=XXX;pwd=XXXXX" dbOracle.Open strConn strSQL = "Select distinct(a.adno), p.pdate, a.iremarks, p.colour, p.xsize, p.ysize, p.paper, a.ad_type, p.prmethod, p.ready, a.maker, a.salno, p.modifier, p.remarks, p.adrno, a.adrname, a.adrtel, a.receiver FROM pub p, ad a WHERE p.adno=a.adno AND a.adno='"&get_adno&"' order by p.paper, length(p.paper)" Set rsOracle = CreateObject("ADODB.Recordset") rsOracle.Open strSQL, dbOracle
%>
de felter der skal kunne ændres er: ad_type, prmethod, ready, og jeg har lavet følgende dropdown-bokse: <select size="1" name="ddtbl_ad_type" style="font-size: 7pt"></select> <select size="1" name="ddtbl_prmethod" style="font-size: 7pt"></select> <select size="1" name="ddtbl_ready" style="font-size: 7pt"></select>
Det skal være sådan at hvis dropdown-feltet =" " (defaultvalg), skal der ikke ændres noget i DB - men ellers skal DB opdateres til valgte option
i onChange erstatter du din_side.asp med den side dropdown er på:
så kalder den sig selv, og du får værdien fra option boksen med over, og kan så med if sætningen køre det databasekald du vil alt efter hvad brugeren har valgt.
OK - enten er jeg ikke med eller også har jeg forklaret mig forkert De 3 felter, der skal ændres er felter der er udfyldt, men hvor man skal kunne ændre DB-feltets indhold.
eksempel: adtype: S | prmethod: K | ready: E
S, K & E, skal man så kunne ændre/opdatere, men ved hjælp af dropdown-bokse, da jeg skal kunne bestemme feltets kodebogstav
Det der vil ske hvis man blot opdatere alle 3 uden at der er foretaget valg i eks. de 2 første, vil de 2 førstes værdi være blank. Og det er jo ikke så hensigtsmæssigt.
Der er jo den mulighed at du laver de 3 dropdowns i separate fomrularer og bruger onchange, og en if else sætning
noget i denne her stil
<% Annoncetype = request.form("Annoncetype") if Annoncetype = "" then Annoncetype = "0" end if Produktionssted = request.form("Produktionssted") if Produktionssted = "" then Produktionssted = "0" end if Status = request.form("Status") if Status = "" then Status = "0" end if %>
så sætter du de 3 ind på siden <form method="POST">
jeg har fundet mismatch, hvilket skyldes at feltet, der skal opdaters ikke må indeholde tal. ----- Nu har jeg lavet den således: ad_type = rsOracle("ad_type") if ddtbl_ad_type <> ad_type then SQLstmt = "UPDATE DISTINCTROW ad_type SET ad_type = '" & ddtbl_ad_type & "' WHERE adno=" & request("adno") 'SQLstmt = SQLstmt & "VALUES ('" & request.form("ddtbl_ad_type") & "')" end if
nu er jeg ikke sikker på hvor du får adno fra!? Jeg har antaget at det var fra formularen, men det kunne jo også være fra et recordset, alá: adno = rsOracle("adno") WHERE adno='" & adno & "'"
er ikke helt sikker på "gramatikken" ved en oracle db
tak for hjælpen! Du fik mig i hvert fald på rette spor!
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.