Avatar billede tejs Nybegynder
23. juli 2003 - 11:05 Der er 12 kommentarer

Dynamisk ændring af dropdown..

Hej

Jeg er ved at lave en søge funktion hvor et af kriterierne er årgang. Her skal man vælge årgang fra og til i to dropdownboxe.

Dropdownboxen "FRA" skal altid være lavere end "TIL".

Årstallene er i begge dropdowns alle årstal fra 2003 og ned til 1960.

Hvordan kan jeg klare det..?
Avatar billede grunken Nybegynder
23. juli 2003 - 11:15 #1
jeg går ud fra at det ikke "bare" skal løses med en alert ?-)
Avatar billede sublimegirl Nybegynder
23. juli 2003 - 11:17 #2
Hvad vil du arbejde i? Skal det kun være javascript? Jeg kan hjælpe, hvis det også må være i ASP :) Så kunne det eventuelt være noget lignende:

If request.QueryString("fra") < request.QueryString("til")
Then
response.Write "din fra-dato skal være lavere end din til-dato!"
Else
Response.Write "her skal være det der skal ske"
End If
Avatar billede sublimegirl Nybegynder
23. juli 2003 - 11:19 #3
Nej, sådan her selvfølgelig:
<%
If NOT (request.QueryString("fra") < request.QueryString("til"))
Then
response.Write "din fra-dato skal være lavere end din til-dato!"
Else
Response.Write "her skal være det der skal ske"
End If
%>
Avatar billede tejs Nybegynder
23. juli 2003 - 11:33 #4
Det er vigtigt at det er javascript - ellers opdaterer den ikke uden at siden skal opdateres..
Avatar billede grunken Nybegynder
23. juli 2003 - 12:40 #5
sikkert slamkode, men det virker

<script>
var aarstart    = 1960;
var aarslut     = 2003;
var n        = 1;
var j        = 1;

function setstart(e){
aarstart = parseInt(e)+1;
n=1;j=1
skrivaar(document.forms[0].slut)
}

function setslut(e){
aarslut = parseInt(e)-1;
n=1;j=1
skrivaar(document.forms[0].start)
}

function skrivaar(e){
for(h=aarstart;h<=aarslut;h++)j++
e.length = j;

for(i=aarstart;i<=aarslut;i++){
e.options[n].text = i;
e.options[n].value = i;
n++
}
e.selectedIndex=0;
}
</script>

<body onload="skrivaar(document.forms[0].start);">
<form action="test.html" method="get">

<select name="start" onchange="setstart(this.value)">
<option value="intet">Start</option>
</select>

<select name="slut" onchange="setslut(this.value)">
<option value="intet">&lt;----------</option>
</select>

<br><input type="submit" value="Indsend">
</form>
</body>
</html>
Avatar billede grunken Nybegynder
23. juli 2003 - 12:46 #6
ændrer lige lidt ;)

<script>
var aarstart    = 1960;
var aarslut     = 2003;
var n        = 1;
var j        = 1;

function setstart(e){
aarstart = parseInt(e)+1;
n=1;j=1;
skrivaar(document.forms[0].slut);
}

function setslut(e){
if (e<document.forms[0].start.value){
aarslut = parseInt(e)-1;
n=1;j=1;
skrivaar(document.forms[0].start);}
}

function skrivaar(e){
for(h=aarstart;h<=aarslut;h++)j++
e.length = j;

for(i=aarstart;i<=aarslut;i++){
e.options[n].text = i;
e.options[n].value = i;
n++
}
}
</script>

<body onload="skrivaar(document.forms[0].start);">
<form action="test.html" method="get">

<select name="start" onchange="setstart(this.value);">
<option value="intet">Start</option>
</select>

<select name="slut" onchange="setslut(this.value);">
<option value="intet">&lt;----------</option>
</select>

<br><input type="submit" value="Indsend">
</form>
</body>
</html>
Avatar billede roenving Novice
23. juli 2003 - 13:04 #7
-- og så en udgave hvor det hele virker som man burde kunne forvente:

<html>
<head>
<title>Vælg år</title>
<script language="javascript" type="text/javascript">
var st = aarstart = 1960;
var sl = aarslut = 2003;
var n = 1;
var j = 1;

function setstart(e){
aarstart = parseInt(e)+1;
n=1;j=1;
aarslut = sl;
skrivaar(document.forms[0].slut)
}

function setslut(e){
aarslut = parseInt(e)-1;
n=1;j=1
aarstart = st;
skrivaar(document.forms[0].start)
}

function skrivaar(e){
var sel = e.options[e.selectedIndex].value;
e.length = aarslut-aarstart+2;
for(i=aarstart;i<=aarslut;i++){
e.options[n].text = i;
e.options[n].value = i;
if(i==sel)sel=n;
n++
}
e.selectedIndex=sel;
}
</script>
</head>

<body onload="skrivaar(document.forms[0].start);">
<form action="test.html" method="get">

<select name="start" onchange="setstart(this.options[this.selectedIndex].value)">
<option value="intet">Start</option>
</select>

<select name="slut" onchange="setslut(this.options[this.selectedIndex].value)">
<option value="intet">&lt;----------</option>
</select>

<br><input type="submit" value="Indsend">
</form>
</body>
</html>
Avatar billede jytte Nybegynder
23. juli 2003 - 13:36 #8
brugeren kan jo komme til at vælge '<---' igen så måske skal setslut ændres en smule:

function setslut(e){
  if (e!='intet') {
    aarslut = parseInt(e)-1;
    n=1;j=1
    aarstart = st;
    skrivaar(document.forms[0].start)
  }
}
Avatar billede roenving Novice
23. juli 2003 - 13:52 #9
Godt set, jytte, jeg havde den vist ude på sidelinjen på et tidspunkt mens jeg fandt på forbedringer til grunkens ...
Avatar billede grunken Nybegynder
23. juli 2003 - 13:56 #10
Og ud over det er spørgsmålet læst forkert *G*, og nej jeg gider ikke lave det hele om hos mig her->

men i er goe i 2 ;p

<script>
var aarstart    = 1960;
var aarslut    = 2003;
var n        = 1;
var j        = 1;

function setstart(e){
aarstart = parseInt(e);
n=1;j=1;
skrivaar(document.forms[0].slut);
}

function setslut(e){
if (e<document.forms[0].start.value){
aarslut = parseInt(e);
n=1;j=1;
skrivaar(document.forms[0].start);}
}

function skrivaar(e){
for(h=aarslut;h!=aarstart;h--)j++
e.length = j;

for(i=aarslut;i!=aarstart;i--){
e.options[n].text = i;
e.options[n].value = i;
n++
}
}
</script>

<body onload="skrivaar(document.forms[0].start);">
<form action="test.html" method="get">

<select name="start" onchange="setstart(this.value);">
<option value="intet">Start</option>
</select>

<select name="slut" onchange="setslut(this.value);">
<option value="intet">&lt;----------</option>
</select>

<br><input type="submit" value="Indsend">
</form>
</body>
</html>
Avatar billede atheist Nybegynder
26. juli 2003 - 23:08 #11
Håber jeg kan nå at være med... Her er ihvertfald mit bud:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta name="Generator" content="Stone's WebWriter 4 BETA 6">
<script type="text/javascript">

var maaneder = new Array(31,28,31,30,31,30,31,31,30,31,30,31)
var maanederne = new Array("Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December")

var dag = new Date()
var dato = dag.getDate()
var maaned = dag.getMonth()
var kode
var antaldag =maaneder[maaned]
var regmonth
function mdr(){
kode=" Til: &nbsp; <select name='valgtmaaned' >"
var snyd = -regmonth-1
snyd = -snyd
    for (var a=snyd;2003>=a;a++){
        kode =kode+"<OPTION value="+a+">"+a
    }   
    kode = kode+"</option>"
    valg.innerHTML = kode
}
function initpage(){
    var kodemdr =" <select name='valgtdag' onchange='shoew()'>"

    for (var a=1960;2003>=a;a++){
        kodemdr =kodemdr+"<OPTION value="+a+">"+a
    }
    kodemdr = kodemdr+"</option>"
    valgmdr.innerHTML = kodemdr
}

function reg(){
    var regdag    =    document.formen.valgtmaaned.value        <!-- Den dag der er registreret -->   
   
    var checked = "not"

    if (dato>=regdag && regmonth==maaned){
        checked = "ok" <!-- ikke røre denne linje -->
    }
    if (regmonth == maaned-1 && 5>dato){
        checked = "ok" <!-- ikke røre denne linje -->
    }
    if (checked == "not"){   
        alert("Beklager, den gik ikke")<!-- Denne sætning kører hvis der er noget galt -->
    }
    else {
            var aar = dag.getYear()     


<!-- Denne sætning kører hvis alt er ok -->
    }
}
function shoew(){
    valg.style.visibility="visible"
regmonth = document.formen.valgtdag.value  <!-- Den måned der er registreret -->
    mdr()

}
</script>



    <title>[Ingen titel]</title>
</head>
<body onload="initpage()">
<form name="formen">Fra:
<a id="second"  name="valgmdr" > </a><br>
<a id="valg" style="visibility:hidden"> </a>
</form>
</body>
</html>

Jeg beklager de skumle variabelnavne, men det er et script jeg genbruger... Orkede ikke lige at skulle til at ændre dem...
Avatar billede atheist Nybegynder
24. juli 2010 - 04:12 #12
lukketid?
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