Avatar billede ameq Nybegynder
22. oktober 2003 - 13:23 Der er 9 kommentarer og
1 løsning

Styr array ved hjælp af dropdown

Hej E.
Jeg har en dropdown som hedder "states"
og så har jeg et array som hedder "valg" i det har jeg nogle subarray hvis man kan kalde dem det....
valg[1] = new Array();
valg[1][0] = "text1";
valg[1][1] = "text2";

valg[2] = new Array();
valg[2][0] = "text1";
valg[2][1] = "text2";

value af states er det føste tal i valg array (f.eks. 1)

men hvis jeg så sætte states til 2 så skal den udskrive det nye array i nogle tekstfælder

text1 skal ud i en som hedder "text1" og text2 skal ud i en som hedder "text2"

håber jeg har forklaret mig godt nok =)
Avatar billede roenving Novice
22. oktober 2003 - 13:37 #1
<script type="text/javascript">
function chText(fld){
  val = +fld.value;
  f = fld.form;
  f.text1.value = valg[val][1];
  f.text2.value = valg[val][2];
}
</script>


<select ... onchange="chText(this)">
Avatar billede ameq Nybegynder
22. oktober 2003 - 13:52 #2
får fejl i
  f = fld.form;

Okj. understøtter ikke denne egenskab eller metode
tegn 3
Avatar billede roenving Novice
22. oktober 2003 - 14:01 #3
Årh, den overså jeg lige, så:

f = document.forms[0]

hvis det er den eneste form du har -- ellsers bliver det:

f = document.forms['formNavn']
Avatar billede ameq Nybegynder
22. oktober 2003 - 14:07 #4
jeg har fået det til at virke =) tror også det var lidt min fejl... men vil du lige svare mig på en ting... kan den her funktion ikke blive kørt når jeg sætte værdigen fra det dropdown? skal nok lige se kode for at forstå hva jeg mender...


<html>
<head>
<script>
var stateNames=new Array()
stateNames["none"]=new Array("Choose a country first")

var stateNames_id=new Array()
stateNames["Gom"]=new Array("Scanner")
stateNames_id["Gom"]=new Array("3")
stateNames["PTC"]=new Array("Pro-E","Pro-E Wildfire")
stateNames_id["PTC"]=new Array("1","2")

function fillStates(opt){
  s=document.f.states.options
  s.length=stateNames[opt].length
  for(i=0;i<s.length;i++){
    s[i].value=stateNames_id[opt][i]
    s[i].text=stateNames[opt][i]
  }
  document.f.states.selectedIndex=0
}
valg = new Array();

valg[0] = new Array();
valg[0][0] = "text00"; //Overskrift : Søg
valg[0][1] = "text01"; //Tekstfelt 1 : Navn

valg[2] = new Array();
valg[2][0] = "text10"; //Overskrift : Søg
valg[2][1] = "text11"; //Tekstfelt 1 : Navn

function chText(fld){
  val = +fld.value;
  f = fld.form;
  f.text1.value = valg[val][0];
  f.text2.value = valg[val][1];
}

function test(nr){
  f.text1.value = valg[nr][0];
  f.text2.value = valg[nr][1];
}
</script>
</head>
<body>
<form name="f" method="post" action="dropdown2.asp">
<select name="countries" onchange="fillStates(this.options[this.selectedIndex].value)">
<option value="none">Pick one</option>

  <option value="Gom">Gom</option>

  <option value="PTC">PTC</option>

</select>
<select name="states" onchange="test(this.value)">
  <option value="">Choose a country first</option>
</select>
<br><input name="text1" type="text" style="width: 180px;" class="textbox" id="contact" value="">
<br><input name="text2" type="text" style="width: 180px;" class="textbox" id="company_name" value="">
<input type="submit" value="submit" name="submit">
</form>

</body>
</html>
Avatar billede roenving Novice
22. oktober 2003 - 14:15 #5
Jo, f.eks.

  document.f.states.selectedIndex=0
  chText(document.f.states);
}
valg = new Array();
Avatar billede ameq Nybegynder
22. oktober 2003 - 14:27 #6
jeg fårstår ikke den her fejl


<html>
<head>
<script>
var stateNames=new Array()
stateNames["none"]=new Array("Choose a country first")

var stateNames_id=new Array()
stateNames["Gom"]=new Array("Scanner")
stateNames_id["Gom"]=new Array("3")
stateNames["PTC"]=new Array("Pro-E","Pro-E Wildfire")
stateNames_id["PTC"]=new Array("1","2")

function fillStates(opt){
  s=document.f.states.options
  s.length=stateNames[opt].length
  for(i=0;i<s.length;i++){
    s[i].value=stateNames_id[opt][i]
    s[i].text=stateNames[opt][i]
  }
  document.f.states.selectedIndex=0
  saettext(document.f.states);
}
valg = new Array();

valg[1] = new Array();
valg[1][0] = "text10"; //Overskrift : Søg
valg[1][1] = "text11"; //Tekstfelt 1 : Navn

valg[2] = new Array();
valg[2][0] = "text20"; //Overskrift : Søg
valg[2][1] = "text21"; //Tekstfelt 1 : Navn

valg[3] = new Array();
valg[3][0] = "text30"; //Overskrift : Søg
valg[3][1] = "text31"; //Tekstfelt 1 : Navn

function saettext(nr){
  f.text1.value = valg[nr][0];
  f.text2.value = valg[nr][1];
}
</script>
</head>
<body>
<form name="f" method="post" action="dropdown2.asp">
<select name="countries" onchange="fillStates(this.options[this.selectedIndex].value)">
<option value="none">Pick one</option>

  <option value="Gom">Gom</option>

  <option value="PTC">PTC</option>

</select>
<select name="states" onchange="saettext(this.value)">
  <option value="">Choose a country first</option>
</select>
<br><input name="text1" type="text" style="width: 180px;" class="textbox" id="contact" value="">
<br><input name="text2" type="text" style="width: 180px;" class="textbox" id="company_name" value="">
<input type="submit" value="submit" name="submit">
</form>

</body>
</html>
Avatar billede roenving Novice
22. oktober 2003 - 14:33 #7
document.f.states.selectedIndex=0
  saettext(0);
}
valg = new Array();

-- du har jo lige sat parameteren til 0, så kan vi jo ligeså godt kalde den med det direkte !-)
Avatar billede ameq Nybegynder
22. oktober 2003 - 15:04 #8
så virker det =) JUBII! tak for det... lav lige et svar =)
Avatar billede roenving Novice
22. oktober 2003 - 15:06 #9
Velbekomme '-)
Avatar billede roenving Novice
22. oktober 2003 - 15:14 #10
-- og tak for points ;~}
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