PDA

Volledige versie bekijken : ["prijs_b"+i][0] uitlezen array variable


mknol
%Europe/Berlin %556 %2005, 14:20
Mensen, dit is wel een javascript, dat weet ik, maar het gaat me hier om de notatie.
ik heb prijs_b1,prijs_b2 enz als een array.
Dit wil ik uitlezen als prijs_b+i en dan de eerste of tweede waarde uit de array daarvan in de loop.
Nu heb ik dit allemaal geprobeerd, maar werkt niet
["prijs_b"+i][0]
(["prijs_b"+i])[0]
of zoals in het voorbeeld hieronder..
enz..

Wie kan me helpen??


<form name="form1">
Kroket: &nbsp;&nbsp;&nbsp;<input type="text" size=10 onChange="bereken(this.form)" value="0" name="b1"><br>
Frikandel: <input type="text" size=10 onChange="bereken(this.form)" value="0" name="b2"><br>
Broodje:&nbsp;&nbsp; <input type="text" size=10 onChange="bereken(this.form)" value="0" name="b3"><br>

<BR><BR>
<textarea name="totaal" cols="60" rows="20"></textarea>
<input type="text" size=10 name="totaal2">

<script language="javascript">

function bereken(x) {
var prijs_b1=new Array (1.50,"kroket")
var prijs_b2=new Array (1.25,"frikandel")
var prijs_b3=new Array (2.00,"broodje")

document.form1.totaal.value = "*** Bestellijst: ***\n\n"

for (i=1; i<4; i++) {
g = ["prijs_b" add i];
document.form1.totaal.value += document.form1["b"+i].value + " x " + g[1] +" à € " + g[0] + "\n";

}

//totaalberekening= (document.form1.b1.value * (p1[0])) + (document.form1.b1.value * (p2[0])) + (document.form1.b1.value * (p3[0]));
//document.form1.totaal2.value = totaalberekening+" euro";

}

</script>

Roenes
%Europe/Berlin %559 %2005, 14:25
g = eval("prijs_b" + i);

werkt het dan niet? :) Dus die regel ipv jouw eerste regel in de for :)

mknol
%Europe/Berlin %562 %2005, 14:29
je bent mn held.

Roenes
%Europe/Berlin %568 %2005, 14:39
mooi zo :);)

treurmars
%Europe/Berlin %579 %2005, 14:53
Ha mooi, nu kunnen we weer verder! :D

mknol
%Europe/Berlin %585 %2005, 15:03
Ha mooi, nu kunnen we weer verder! :D
ja inderdaad. Nog maar 800 produkten te gaan. En dat na een ochtend en middag kloten vanwege deze berekening.... :X 8D

Roenes
%Europe/Berlin %587 %2005, 15:06
Zul je altijd zien. Soms is een probleem wat je zelf niet meer ziet heel simpel te zien voor een buitenstaander. :)

treurmars
%Europe/Berlin %590 %2005, 15:10
Ja dat was het dus ook, wij waren ons er nogal blind op aan het staren, nu maar hopen dat hij 800 produkten gaat trekken en dat het niet al te zwaar wordt. :)

treurmars
%Europe/Berlin %408 %2005, 10:47
Ok, weer even een probleempje.

We hebben deze berekening die eerst checkt welke velden ingevuld zijn (zijn er zo'n 800) en daarna berekent wat alle producten bij elkaar kosten. Wat er nu soms gebeurt is dat hij opeens een afrondingsfoutje maakt waardoor er zo'n 10 cijfers achter de komma komen te staan. Nu wil ik afdwingen dat wat er ook gebeurt hij er maar 2 achter de komma laat zien. Iemand enig idee? (In principe zou hij dat moeten doen door die berekening, maar soms kruipt er nog wat doorheen).


function CheckCijfers(field) {
if (isNaN(field.value)) {
field.value = "";
}
}


function bereken(x) {
totaalberekening=0;


document.form2.bestellijst.value = "*** Bestellijst: ***\n\n"

for (i=1; i<799; i++) {
g = eval("p" + i);
CheckCijfers(document.form1["b"+i]);
if (document.form1["b"+i].value != 0) {
//document.form1["b"+i].style.background = "#E3E3E3";
totaalberekening += Math.round(100*(document.form1["b"+i].value * g[0]))/100;

document.form2.bestellijst.value += document.form1["b"+i].value + " x " + g[1] +" à € " + g[0] + "\n";

}
else {
//document.form1["b"+i].style.background = "#ffffff";
}
}
//document.form2.bestellijst.value +="\n\nTotaal: "+totaalberekening+" euro";
document.form2.totaalbedrag.value = totaalberekening+" ";
}
-->{

treurmars
%Europe/Berlin %533 %2005, 13:47
Ok, ik heb hem al werkend gekregen.

Dit heb ik verandert:

document.form2.totaalbedrag.value = Math.round(100*totaalberekening)/100;


Voor mensen die er misschien nog baat bij hebben. :)

mknol
%Europe/Berlin %650 %2005, 16:37
Ok, ik heb hem al werkend gekregen.

Dit heb ik verandert:

document.form2.totaalbedrag.value = Math.round(100*totaalberekening)/100;


Voor mensen die er misschien nog baat bij hebben. :)volgens mij zei ik dat

treurmars
%Europe/Berlin %653 %2005, 16:41
Jij zei het, ik heb het verandert. :P

mknol
%Europe/Berlin %659 %2005, 16:49
Jij zei het, ik heb het verandert. :P
okee :D