Avatar billede hewha Nybegynder
26. september 2008 - 16:16 Der er 6 kommentarer og
2 løsninger

Url hentes ind i en iframe ved valg i dropdown menu.

Hejsa. Har nu trawlet google tynd, men da jeg er på mit første døgn med javascripts, så kniber det lidt med forståelsen :-D

Jeg vil gerne have at når man i nedenstående kode vælger f.eks. Belgium -> Belgium city 1 i menuen, så hentes en lokal html fil eller lign. ind i en iframe som er placeret lige under menuen. Jeg ville helst at dette blev gjort bare ved at vælge "Belgium city 1" i menuen, men kan godt leve med at man skal trykke på knappen for at indholdet vises.

Koden er som følger:

<form name="countries">
<p><select name="country" size="1" onChange="redirect(this.options.selectedIndex)">
<option>------ Country ------</option>
<option>Belgium</option>
<option>Denmark</option>
<option>Finland</option>
</select>
<select name="stage2" size="1">
<option value="">------ Customer ------</option>
</select>
<input type="button" name="test" value="Select"
onClick="go()">
</p>


<script>
<!--


var groups=document.countries.country.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()

group[0][0]=new Option("N/A","")

//Belgium
group[1][0]=new Option("Belgium city 1","http://")
group[1][1]=new Option("Belgium city 2","http://")

//Denmark
group[2][0]=new Option("Denmark city 1","http://")
group[2][1]=new Option("Denmark city 2","http://")

//Finland
group[3][0]=new Option("Finland city 1","http://")
group[3][1]=new Option("Finland city 2","http://")


var temp=document.countries.stage2

function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}

function go(){
location=temp.options[temp.selectedIndex].value
}

//-->

</script>

<iframe id="i" name="i" width="600" height="400" src="c:\cvmstart.htm"></iframe>

Mit problem er vel egentligt at jeg ikke aner hvordan jeg laver en "target"  på den iframe der er på siden?

Jeg er sikker på at ovenstående kan gøres en del nemmere, så alternative forslag modtages meget gerne :-)

På forhånd tak.
Avatar billede olebole Juniormester
26. september 2008 - 16:19 #1
<ole>

function go(){
    frames.i.location.href = temp.options[temp.selectedIndex].value
}

/mvh
</bole>
Avatar billede roenving Novice
27. september 2008 - 11:43 #2
-- à propos at gøre det lettere, så kan du bruge lidt færre ressourcer ved bare at bruge arrays i stedet for options til at opbevare dine værdier:

var groups=document.countries.country.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()

group[0][0] = ["N/A",""];

//Belgium
group[1][0] = ["Belgium city 1","http://"];)
group[1][1] = ["Belgium city 2","http://"];

//Denmark
group[2][0] = ["Denmark city 1","http://"];
group[2][1] = ["Denmark city 2","http://"];

//Finland
group[3][0] = ["Finland city 1","http://"];
group[3][1] = ["Finland city 2","http://"];

-- og:

...
temp.options[i]=new Option(group[x][i][0],group[x][i][1])
...
Avatar billede hewha Nybegynder
29. september 2008 - 11:08 #3
Tak for svarene til jer begge to. Jeg kan sagtens se idéen i det foreslåede, men desværre løber jeg ind i en ny fejl.

olebole: Når jeg trykker på select knappen til f.eks. "Belgium city 1" så får jeg en fejl meddelelse der fortæller mig at "'frames.i.location.href' is null or not an object". Skyldes det at jeg mangler en reference i selve option linien?

roenving: Tak for foreslaget. Det gør det unægteligt lidt hurtigere med alle de arrays der skal smides ind senere :-)
Avatar billede olebole Juniormester
29. september 2008 - 14:19 #4
Ja, man bør aldrig have specialtegn - såsom mellemrum - i sine filnavne ... så det er også en ting at rette, hvis du vil gøre livet lettere  ;o)
Avatar billede hewha Nybegynder
30. september 2008 - 14:16 #5
Tak for hjælpen begge to. Såfremt i opretter et svar begge to, kan i dele rovet. Såfremt dette er muligt?
Avatar billede olebole Juniormester
30. september 2008 - 16:50 #6
Selvtak - og her kommer det første  =)
Avatar billede roenving Novice
30. september 2008 - 16:53 #7
Jepz, du kan sagtens dele, enten ved at markere begge i boksen til venstre og så trykke Acceptér, så deler php-scriptet pointene lige, eller trykke på avanceret og så tildele et antal point til hver med tilsammen det, du har udlovet !-)

-- velbekomme '-)
Avatar billede roenving Novice
02. oktober 2008 - 11:00 #8
-- 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