Avatar billede fuldstop Nybegynder
10. april 2007 - 11:14 Der er 8 kommentarer og
2 løsninger

Select huske den valgte varabel. (Onchange)

Har følgende kode:

<Select value=<%Request.Querystring("stationfilter")%> name=stationfilter onchange='location="log.asp?viden=1&stationfilter=" + this.value'>
    <option value='Alle'>Alle</option><option value='Andet'>Andet</option><option value='AGERA'>AGERA</option>
    </Select>

Hvordan får jeg den til at huske hvilken værdi der er blevet valgt? Viser altid 'Alle', kan man på en eller anden måde lave den dynamisk, så dropdownen også viser det valgte også efter onchange. Kan ikke rigtig få det til at virke med value=<%Request.Querystring("stationfilter")%>
Avatar billede roenving Novice
10. april 2007 - 11:32 #1
To veje, enten udvider du koden serverside, så den simpelthen checker:

<option value='Alle'<%if Request.Querystring("stationfilter")="Alle" then Response.Write ""selected""%>>Alle</option>

-- og det gør du selvfølgelig på alle options ...

-- eller du kaster værdien og tester onload, f.eks.

<script type="text/javascript">
var statFilter = "<%Request.Querystring("stationfilter")%>";
window.onload = function(){
  var sel = document.forms[0].stationfilter;
  for/i=0,im=sel.length;im>i;i++){
    if(sel.options[i].value == statFilter){
      sel.selectedIndex = i;
      break;
    }
  }
}
</script>
Avatar billede roenving Novice
10. april 2007 - 11:34 #2
-- måske meget godt at få et mellemrum ind (det burde dog ikke betyde noget !-)

<option value='Alle' <%if Request.Querystring("stationfilter")="Alle" then Response.Write ""selected""%>>Alle</option>
Avatar billede thesurfer Nybegynder
10. april 2007 - 11:37 #3
Så heller et mellemrum efter 'Alle', og kun 1x" på hver side.. :-)


<option value='Alle'<% if Request.Querystring("stationfilter")="Alle" then Response.Write " selected" %>>Alle</option>

Det ville måske endda nok være en god ide, at bruge en variabel til at indeholde værdien af Request.Querystring("stationfilter")..

Eksempel:

<% sf = Request.Querystring("stationfilter") %>

<option value='Alle'<% if sf = "Alle" then Response.Write " selected" %>>Alle</option>


Jeg mener ikke at ASP er case-sensitive, men for en sikkerhedsskyld, kunne man gøre sådan her:

<% sf = LCase(Request.Querystring("stationfilter")) %>

<option value='Alle'<% if sf = "alle" then Response.Write " selected" %>>Alle</option>

LCase konverterer alle bogstaver til små bogstaver..
Avatar billede thesurfer Nybegynder
10. april 2007 - 11:40 #4
PS: Jeg ville nok gøre det på servesider (ASP), af følgende 2 grunde:

1) Hvis brugeren har JavaScript slået fra, vil JavaScript-delen ikke virke.. hverken det med selected eller din onchange. Derfor skal du sørge for, at der er andre muligheder, som f.eks. almindelig submit.

2) Hvis siden skulle hænge (af en eller anden grund), vil window.onload ikke blive afviklet, før hele siden er loadet.. Med ASP vil den korrekte option være markeret fra start af, dvs, inden hele siden loades/vises i browseren
Avatar billede roenving Novice
10. april 2007 - 11:45 #5
-- og så kom jeg til at tænke på, at det vel vil være godt at få gjort det standard-uafhængigt, så ud fra strandløvens sidste:

<option value='Alle'<% if sf = "alle" then Response.Write " selected=""selected""" %>>Alle</option>
Avatar billede thesurfer Nybegynder
10. april 2007 - 11:47 #6
God pointe :-)
Avatar billede fuldstop Nybegynder
10. april 2007 - 14:21 #7
Hej begge. Mange tak for hjælpen, smider I lige et svar?
Avatar billede roenving Novice
10. april 2007 - 14:49 #8
Velbekomme '-)
Avatar billede thesurfer Nybegynder
10. april 2007 - 23:27 #9
Yeps :-)
Avatar billede roenving Novice
11. april 2007 - 23:27 #10
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Teamleder til AL Sydbanks GDPR & Tech Regulation i Aabenraa

Banedanmark

Systemarkitekt

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Ingeniør til Satellitkommunikation

Politiets Efterretningstjeneste

CNE-specialist til PET`s indhentningsafdeling