04. februar 2004 - 11:46Der er
8 kommentarer og 1 løsning
Hjælp! Omsætte ASP til JavaScript: opslag i database
Problemstilling: I en større formular udvælges postnumre via et SELECT-felt (<OPTION>). Senere skal disse overføres via en funktion (JavaScript) til et SPAN-felt på samme side til bekræftigelse af det indtastede. Antallet af indtastede oplysninger er så stort, at det ikke kan overføres til anden side i samme frame, det SKAL derfor foregå på samme side. Udover postnummeret ønskes postdistriktet også vist i bekræftigelsesdelen, men dette kræver et opslag i databasen (Access).
Spørgsmål: Hvordan kan man vha. JavaScript foretage et opslag i databasen? Findes der en alternativ løsning?
Eksisterende kode i indtastningsformular: <TR> <TD>Postnummer:</TD> <TD> <SELECT SIZE="1" NAME="anmPostNr"> <OPTION DISABLED> <% Post.MoveFirst While NOT Post.EOF %> <OPTION VALUE='<% = Post("Post_Nr") & "'>" & Post("Post_Nr") %> <% Post.MoveNext Wend %> </SELECT>* </TD> <TD>eller postdistrikt:</TD> <TD> <SELECT SIZE="1" NAME="anmBy"> <OPTION DISABLED> <% By.MoveFirst While NOT By.EOF %> <OPTION VALUE='<% = By("Post_Nr") & "'>" & By("Postdistrikt") %> <% By.MoveNext Wend %> </SELECT> </TD> </TR> NB! Det SKAL være postnummeret, der benyttes til OPTION-feltets value, da dette benyttes i en funktion til automatisk opdatering mellem udvalgt postnummer og tilhørende postdistrikt, og modsat (er ikke medtaget i kode-eksemplet) og er hhv. primær- og fremmednøgle i tabellerne i databasen.
ASP-udgave af udtræk fra database via overførsel af data til ny side (ikke længere muligt): <TR> <% Dim anmPostTabel, anmPostNr, anmBySql, anmBy anmPostNr = Request.QueryString("anmPostNr") anmBySql = "SELECT Postdistrikt FROM Postnr_By WHERE Post_Nr=" anmBySql = anmBySql & anmPostNr Set anmPostTabel = Server.CreateObject("ADODB.Recordset") anmPostTabel.Open anmBySql, Admin anmBy = anmPostTabel("Postdistrikt") <TD>Postdistrikt: </TD><TD><% = anmPostNr & " " & anmBy %></TD> </TR>
jo, men jeg har også brug for, at brugeren kan vælge postdistriktet og automatisk få udfyldt postnummeret, - altså både som i eksemplet, men også den modsatte vej. Jeg ville gerne kunne hente hele postnummertabellen ind på siden i et to-dimentionel array ved indlæsning, hvor postnummmeret er indexværdien, men hvordan gør jeg det?
missionen lykkedes :-) .. takker for hjælpen ... point på vej efter modtagelse af Svar ...
Er nu godt klar over begrænsningerne i Access, - arbejder p.t. kun på en prototype.
Spurgte bl.a. til array, da postnummertabellen skal benyttes 9-10 gange i løbet af formularen og det tager jo unødig tid at hente den ind mere end én gang. !-)
<script language="javascript" type="text/javascript"> function copySels(){ var sels = ['minSelect2','minSelect3'], newSel = null;// navne på de selects, som skal overtage indhold ... var sel = document.getElementById('minSelect');// navn på den select, som skal kopieres !-) for(i=0;sels.length>i;i++){ sels[i] = document.getElementById(sels[i]); sels[i].style.width = '105px'; } for(i=0;sel.length>i;i++){ for(j=0;sels.length>j;j++){ newOpt = document.createElement('OPTION'); sels[j].appendChild(newOpt); newOpt.value = sel.options[i].value; newOpt.text = sel.options[i].text; } } } </script>
<body onload="copySels()">
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.