Avatar billede sth Novice
12. april 2005 - 23:50 Der er 10 kommentarer og
2 løsninger

jeg har 3 dropdown hvor indholdet ier afhængigt af valge i de and

jeg har følgende problem:
jeg har en tabel det se sådan ud:

vare  lot  mængde
123  4711  10
123  4711  20
123  4711  30
123  4711  40
123  1147  10
123  1147  20
234  5699  5
234  5699  10
234  5699  15

jeg vil gerne lave det sådan at når man eks. vælger vare 123 i den første dropdown, så kan man kun vælge mellem lot 4711 eller lot 1147, vælger man så lot 4711 så kan man kun vælge mellem 10, 20, 30 og 40

jeg har fundet noget på nettet men jeg kan ikke rigtig få det til at virke så jeg har bare brug for hjælp
Avatar billede thesurfer Nybegynder
13. april 2005 - 00:32 #1
Du skal bruge WHERE i din SQL streng. Eksempel:
Brugeren har valgt "123" under "vare"..
"select * from TabelNavn where vare = 123"

hvis "vare" er af typen "tekst" (og ikke "tal"), skal det være: where vare = '123'

Men du skal selvfølgeligt ikke skrive "123" selv.. det henter du med Request.Form("navnet-på-dropdown-til-vare").. brug Request.Querystring i stedet, hvis du har submitter værdierne via URLen..)
Avatar billede sth Novice
13. april 2005 - 01:01 #2
jeg har ingen problemer med sql-delen, mit problem er at lave 3 boxe der er aghængig af hinanden, du kan se noget der ligner det her: http://www.atgconsulting.com/triplelist.asp

jeg har selv brugt en del tid på dette og har det også næsten til at virke, men jeg kan nu se at det aldrig kommer til at virke 100 %
men det må meget gerne være dropdown.
Avatar billede dbangx Nybegynder
13. april 2005 - 07:47 #3
det lader jo tydeligvis til at være lavet i JavaScript.

Det der kræves for at du kan få det til at virke er at du henter ALLE poster ud af din tabel og gemmer dem i et array i et javascript. Når brugeren så vælger noget i den første box skal du skifte indholdet ud i den anden box osv.
Avatar billede sth Novice
13. april 2005 - 07:54 #4
Ja det er også det jeg er kommet frem til, men jeg ved bare alt for lidt om JavaScript tiol at jeg kan få det til at virke :(

jeg har næsten fået  http://www.atgconsulting.com/triplelist.asp til at virke men jeg mener at der er en fejl i dette Script da man aldrig kan vælge den første, men har man prøvet en af de andre muligheder så kan man godt vælge den første, og det dur jo bare ikke
jeg ahr søgt her på eksperten men har endnu ikke fundet det jeg skal bruge og jeg tro ikke rig´tig at det kan passe at jeg er den første der har dette behov
Avatar billede dbangx Nybegynder
13. april 2005 - 09:55 #5
jeg har lavet en lille html fil, som du kan prøve at kigge på... Du skal bare sætte noget relevant data ind i de arrays jeg har lavet. Dette eksempel bygger på onchange eventen i drop-downboxen, så det vil sige at du ikke kan vælge det første element. Dette kan du komme udenom ved at lave et dummy element, der altid står på plads 0 i listen.


<HTML>
<HEAD>

</HEAD>
<script language="javascript">
var a = new Array(
    "liste1nr1",
    "liste1nr2");
   
var liste2 = new Array();
    liste2[0] = new Array("l1.v1-l2.v1","l1.v1-l2.v2");
    liste2[1] = new Array("l1.v2-l2.v1","l1.v2-l2.v2");
   
var liste3 = new Array();
    liste3[0] = Array();
        liste3[0][0] = new Array("1-1-1","1 er valgt i 2 første lister");
        liste3[0][1] = new Array("1-2-1","på nær den midterste");       
    liste3[1] = Array();
        liste3[1][0] = new Array("2-1-1","endnu et menupunkt");
        liste3[1][1] = new Array("2-2-1","sidste menupunkt");


function update2(){
removeallin2();
removeallin3();
    for(var i =0; i< liste2[document.all.select1.selectedIndex].length;i++){
        var oOption = document.createElement("OPTION");
        oOption.text=liste2[document.all.select1.selectedIndex][i];
        oOption.value="5";
        document.all.select2.add(oOption);
    }
}
function update3(){
removeallin3();
    for(var i =0; i< liste3[document.all.select1.selectedIndex][document.all.select2.selectedIndex].length;i++){
        var oOption = document.createElement("OPTION");
        oOption.text=liste3[document.all.select1.selectedIndex][document.all.select2.selectedIndex][i];
       
        oOption.value="5";
        document.all.select3.add(oOption);

    }

}
function removeallin2(){
    for(var i =0; i<= document.all.select2.all.length;i++){
        document.all.select2.remove(0);       
    }
}
function removeallin3(){
    for(var i =0; i<= document.all.select3.all.length;i++){
        document.all.select3.remove(0);       
    }
}

</script>

<BODY>

<SELECT id=select1 name=select1 onchange="update2();">
    <OPTION value=1>liste1nr1</OPTION>
    <OPTION value=2>liste1nr2</OPTION>   
</SELECT>
<SELECT id=select2 name=select2 onchange="update3();"></SELECT>
<SELECT id=select3 name=select3></SELECT>
</BODY>
</HTML>
Avatar billede sth Novice
13. april 2005 - 11:20 #6
ja det ser ud til at jeg kunne bruge det, jeg tester det lige i aften
Avatar billede dbangx Nybegynder
13. april 2005 - 11:26 #7
10 4 :-)
Avatar billede sth Novice
13. april 2005 - 11:59 #8
kunne du lige skrive hvad
var a = new Array(
    "liste1nr1",
    "liste1nr2");
Bruges til, jeg kan ikke se den andre steder ?

jeg har ligem rettet lidt så den nu ser ud som nedenstående, så mangler jeg jo bare og få mine værdier da databasen ind, og mon ikke jeg får løst det

<HTML>
<HEAD>

</HEAD>
<script language="javascript">
var a = new Array("liste1nr1","liste1nr2");
   
var liste2 = new Array();
    liste2[0] = new Array("Vælg lot","4711","1147");
    liste2[1] = new Array("Vælg lot","4812","4813");
   
var liste3 = new Array();
    liste3[0] = Array();
        liste3[0][0] = new Array("Vælg mængde","14,4","28,8");
        liste3[0][1] = new Array("Vælg mængde","14,4","28,8","43,2");       
    liste3[1] = Array();
        liste3[1][0] = new Array("Vælg mængde","10","20);");
        liste3[1][1] = new Array("Vælg mængde","10","20","30","40");


function update2(){
removeallin2();
removeallin3();
    for(var i =0; i< liste2[document.all.select1.selectedIndex].length;i++){
        var oOption = document.createElement("OPTION");
        oOption.text=liste2[document.all.select1.selectedIndex][i];
        oOption.value="5";
        document.all.select2.add(oOption);
    }
}
function update3(){
removeallin3();
    for(var i =0; i< liste3[document.all.select1.selectedIndex][document.all.select2.selectedIndex].length;i++){
        var oOption = document.createElement("OPTION");
        oOption.text=liste3[document.all.select1.selectedIndex][document.all.select2.selectedIndex][i];
       
        oOption.value="5";
        document.all.select3.add(oOption);

    }

}
function removeallin2(){
    for(var i =0; i<= document.all.select2.all.length;i++){
        document.all.select2.remove(0);       
    }
}
function removeallin3(){
    for(var i =0; i<= document.all.select3.all.length;i++){
        document.all.select3.remove(0);       
    }
}

</script>

<BODY>

<SELECT id=select1 name=select1 onchange="update2();">
    <OPTION value=1>Vælg varenummer</OPTION>
    <OPTION value=1>1234567</OPTION>
    <OPTION value=2>1234568</OPTION>   
</SELECT>
<SELECT id=select2 name=select2 onchange="update3();"></SELECT>
<SELECT id=select3 name=select3></SELECT>
</BODY>
</HTML>
Avatar billede dbangx Nybegynder
13. april 2005 - 12:27 #9
var a = new Array(
    "liste1nr1",
    "liste1nr2");

var egentligt et forsøg på at bruge et array til den første drop-down, men det fik jeg aldrig til at virke, så det burde du bare kunne fjerne

:-)
Avatar billede sth Novice
14. april 2005 - 20:28 #10
jeg kan ikke få det til at virke :-(


kunne du lave en der kan vise :
vare  lot  mængde
123  4711  10
123  4711  20
123  4711  30
123  4711  40
123  1147  10
123  1147  20
234  5699  5
234  5699  10
234  5699  15
234  5700  5
234  5700 10
234  5700 15
234  5700 20




ellers må jeg må finde på en anden løsning
Avatar billede sth Novice
14. april 2005 - 20:29 #11
hov ...
glemte lige at skrive at jeg gerne giver 200 point for at se hvordan det laves
Avatar billede sth Novice
16. april 2005 - 02:06 #12
jeg har lavet noget andet
jeg har lavet det med en "reload" og  det virker
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
Kurser inden for grundlæggende programmering

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