Avatar billede elskermad.dk Nybegynder
22. december 2004 - 21:51 Der er 6 kommentarer og
1 løsning

overføre værdi fra dynamisk felt

hej eksperter!

har brug for lidt hjælp til noget jeg har bikset med...

skriver lige koden først og forklaring bagefter!

--------------------------------------------------------------

<input type='hidden' name='eks[3]' value='/grafik/image/thumb/1-1101417533-2151.jpg'>
<input type='hidden' name='eks[1]' value='/grafik/image/thumb/1-1101417515-4963.jpg'>
<input type='hidden' name='eks[6]' value='/grafik/image/thumb/1-1101417739-9956.jpg'>
<input type='hidden' name='eks[7]' value='/grafik/image/thumb/1-1101417836-5112.jpg'>
<input type='hidden' name='eks[5]' value='/grafik/image/thumb/1-1101417576-4616.jpg'>
<input type='hidden' name='eks[4]' value='/grafik/image/thumb/1-1101417539-5152.jpg'>
<input type='hidden' name='eks[8]' value='/grafik/image/thumb/1-1102604644-5314.jpg'>
<input type='hidden' name='eks[2]' value='/grafik/image/thumb/1-1101417525-7352.jpg'>

<select name='billede' class='form_boks' style='width:350px' onChange='document.getElementById("imgeks").src=document.vareopret.eks[this.value].value'>
    <option>Vælg billede</option>
    <option>------------------------</option>
    <option value='3'>bøgh</option>
    <option value='1'>doboy 4</option>
    <option value='6'>ellegård</option>
    <option value='7'>jens</option>
    <option value='5'>pernille</option>
    <option value='4'>skøtt</option>
    <option value='8'>vocal 11</option>
    <option value='2'>vocal 2</option>
</select><br>
<br>
<img id='imgeks' src='/grafik/vare/thumb/0.jpg' border='0'><br>
<br>

--------------------------------------------------------------

altså den burde tage url'en fra den skjulte formfelt der passer til id'et, og derved skifte billedet, men den siger følgende fejl:

document.vareopret.eks er null eller ikke et object!

hvad gør jeg forkert? :S

på forhånd tak! :)
Avatar billede baitianlong Nybegynder
23. december 2004 - 03:04 #1
Hvis det er koden, mangler du jo at instantiere et array objekt:

document.eks = new Array(9);

...eller noget :)
Avatar billede thomas_yde Nybegynder
23. december 2004 - 10:57 #2
Hmm du kan ikke henføre til feltet på den måde. du skal nok skrive sådan her:

<script>
function changeimage(id){
    imgObj = document.getElementById('imgeks');
    var name = "eks["+id+"]";
    var hiddenField = document.getElementsByName(name);
    imgObj.src=hiddenField[0].value;
}
</script>
<input type='hidden' name='eks[3]' value='/grafik/image/thumb/1-1101417533-2151.jpg'>
<input type='hidden' name='eks[1]' value='/grafik/image/thumb/1-1101417515-4963.jpg'>
<input type='hidden' name='eks[6]' value='/grafik/image/thumb/1-1101417739-9956.jpg'>
<input type='hidden' name='eks[7]' value='/grafik/image/thumb/1-1101417836-5112.jpg'>
<input type='hidden' name='eks[5]' value='/grafik/image/thumb/1-1101417576-4616.jpg'>
<input type='hidden' name='eks[4]' value='/grafik/image/thumb/1-1101417539-5152.jpg'>
<input type='hidden' name='eks[8]' value='/grafik/image/thumb/1-1102604644-5314.jpg'>
<input type='hidden' name='eks[2]' value='/grafik/image/thumb/1-1101417525-7352.jpg'>

<select name='billede' class='form_boks' style='width:350px' onChange="changeimage(this.value)">
    <option>Vælg billede</option>
    <option>------------------------</option>
    <option value='3'>bøgh</option>
    <option value='1'>doboy 4</option>
    <option value='6'>ellegård</option>
    <option value='7'>jens</option>
    <option value='5'>pernille</option>
    <option value='4'>skøtt</option>
    <option value='8'>vocal 11</option>
    <option value='2'>vocal 2</option>
</select><br>
<br>
<img id='imgeks' src='/grafik/vare/thumb/0.jpg' border='0'><br>
<br>
Avatar billede roenving Novice
23. december 2004 - 14:29 #3
Hvis du nu gjorde sådan, vil du kunne:

<input type='hidden' name='eks' value='/grafik/image/thumb/1-1101417515-4963.jpg'>
<input type='hidden' name='eks' value='/grafik/image/thumb/1-1101417525-7352.jpg'>
<input type='hidden' name='eks' value='/grafik/image/thumb/1-1101417533-2151.jpg'>
<input type='hidden' name='eks' value='/grafik/image/thumb/1-1101417539-5152.jpg'>
<input type='hidden' name='eks' value='/grafik/image/thumb/1-1101417576-4616.jpg'>
<input type='hidden' name='eks' value='/grafik/image/thumb/1-1101417739-9956.jpg'>
<input type='hidden' name='eks' value='/grafik/image/thumb/1-1101417836-5112.jpg'>
<input type='hidden' name='eks' value='/grafik/image/thumb/1-1102604644-5314.jpg'>

-- så vil de ligge i et array, nummereret fra 0 til 7 !-)
Avatar billede elskermad.dk Nybegynder
23. december 2004 - 14:37 #4
ihh hvor er det træls jeg ikke får mails omkring de spm jeg deltager i! :S

roenving, problemet er at det id jeg putter i name='eks[]' ikke kommer i rækkefølge, men id'et rækken har i min db så derfor er jeg ikke sikker på at det er talene 0-7 der bliver brugt!

legende.dk, hvor skal jeg smide document.eks = new Array(9); ? er ikke så hård til javascript, troede blot man kunne håndtere arrays på samme måde som i php...

prøver lige din thomas_yde :)
Avatar billede elskermad.dk Nybegynder
23. december 2004 - 14:40 #5
det ser ud til at virke :) er den crossbrowsed?

var ikke klar over denne "getElementsByName", troede kun der fandtes sådan noget til id'er!

imgObj.src=hiddenField[0].value; <-- hvorfor skal der være [0] i hiddenField ?
Avatar billede roenving Novice
23. december 2004 - 14:40 #6
Du har vel også dine ting i en form, og så kan du:

onchange='document.getElementById("imgeks").src=this.form.elements["eks["+ this.value+"]"].value'
Avatar billede thomas_yde Nybegynder
23. december 2004 - 22:48 #7
ja den er "crossbrowsed" [0] fordi getElementsByName returnere et array bestående af et objekt og da javascript array starter fra index 0 skal vi bruge [0] for at referere til dette :)
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