12. februar 2004 - 14:06Der er
36 kommentarer og 1 løsning
simpel onchange i select
Hej er der nogen der kan hjælpe mig med at få lavet det sådan at når jeg angiver en værdi i en selectboks så skal der vises nogle værdier som tilhører denne værdi fra en accessdatabase
selectboksen ser sådan ud <!--#include file="forbindelse.asp"--> <% Sql = "Select * From tblkunder order by firmanavn asc" Set Rs = database.Execute(Sql) %> <select name="forsikringstagernavn" id="forsikringstagernavn" > <option>Vælg et navn........................................</option> <% Do While Not Rs.Eof %> <option value="<%= rs("firmanavn")%>"><%= rs("firmanavn") %></option> <% Rs.MoveNext Loop %> </select>
når der så er valgt et firmanavn skal den nedenunder stå kontaktperson,tlf,email osv som tilhører dette firmanavn
selecten skal ind på en form og så kan man hente data omkring det valgt firma:
<!--#include file="forbindelse.asp"--> <% Sql = "Select * From tblkunder order by firmanavn asc" Set Rs = database.Execute(Sql) %> <form mthod="post" action="<%=Request.Servervariables("SCRIPT_NAME")%>"> <select name="forsikringstagernavn" id="forsikringstagernavn" onChange="this.form.submit();"> <option>Vælg et navn........................................</option> <% Do While Not Rs.Eof %> <option value="<%= rs("firmanavn")%>"><%= rs("firmanavn") %></option> <% Rs.MoveNext Loop %> </select> </form>
<% forsikringstagernavn = Request.Form("forsikringstagernavn") if forsikringstagernavn <> "" then SQL = "select * from tblkunder where firmanavn = '" & forsikringstagernavn & "'" set rs = Conn.Execute(SQL) if not rs.EOF then Response.Write "kontaktperson : " & rs("kontaktperson") & "<br>" Response.Write "telefon : " & rs("tlf") & "<br>" Response.Write "Email : " & rs("email") & "<br>" end if end if
Jamen selectboksen er allerede i en form som indeholder mange andre felter og de skal ikke submittes da formen opretter en post i en anden tabel, så måske man skulle bruge en iframe?? men hvordan
Jeg ved ikke om man kan med en iframe, men man kan enten udfylde dem ved at reloade siden og finde data fra den valgte, eller hendte alle firma'ers data på forhånd og havde et javascript som kan udfylde felterne når man vælger et firma, ved javascript reloades siden ikke.
her skal du lægge alle de oplysniger du vil have til at stå i din "infobox". lige nu, så præsenterer den kun nav og adresse, men hvis du vil have flere oplysninger, så skal du bare lægge dem til, og skille oplysningerne med ¤:
denne snip skal passe med den streng du bygger i ASP. hvis du har 4 oplysninger i din ASP variabel, så skal du også hive ud 4 oplysninger i arrayet 'arrCompany':
jeg har sendt en mail til dig på den adresse du angav, så håber jeg du skriver tilbage, for det er rigtig nyttigt det du kommer med her. Tak for hjælpen indtil nu, jeg håber du skriver igen?? Så hurtigt som muligt da siden gerne skulle kører i morgen :-), men ellers går det nok også
hvis du skal bruge denne funktion flere steder, så kan det være smart at sende med id'et til det <div> tag som du vil have info vist. det kan gøres med at ændre din 'onchange' attribut på selectboxen fra:
showCompany( this.selectedIndex );
til
showCompany( this.selectedIndex, '[navnPåDiv]' );
hvor du skal ændre [navnPåDiv] til navnet på dét <div> tag du vil have info vist. i mit postede eksempel, skal du fx skrive:
showCompany( this.selectedIndex, 'divCompInfo' );
derefter skal du ændre lidt i funktionen 'showCompany' - den skal nu se sådan ud:
kan du ikke lave en kopi af basen, og slette de tabeller der ikke bruges af scriptet. lav basen lidt mindre og send det til den adresse jeg opgav i min mail
<% Sql = "Select * From tblkunder order by firmanavn asc" Set Rs = database.Execute(Sql) %> <select name="forsikringstagerid" id="forsikringstagerid" onchange="showCompany( this.selectedIndex, 'divCompInfo' );"> <option>Vælg et navn........................................</option> <% Dim strAllCompanies : strAllCompanies = "" Dim strCompany Dim intCounter : intCounter = 1 Dim intSelected : intSelected = 0 Dim strID : strID = Request.QueryString("IDKunde") Dim strSelected Do While Not Rs.Eof strSelected = "" if( strID = rs("id") ) then strSelected = " selected=""selected""" intSelected = intCounter else intCounter = intCounter + 1 end if
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.