Lieber J.Borchert,
warum notierst Du Deine Daten nicht in einem entsprechenden Format, um sie dann daraus abzuleiten?
function Preis () {
var data = {
"Salami" : {
"18cm" : "2.70",
"28cm" : "5.40"
},
"Tuna" : {
"18cm" : "3.50",
"28cm" : "6.80"
},
"Hawaii" : {
"18cm" : "3.55",
"28cm" : "6.88"
}
};
var price = document.getElementByName("Preis1"); // ergibt ein Array
var sel = document.getElementByName("Sorte1"); // ergibt ein Array
var size = document.getElementByName("Size1"); // ergibt ein Array
if (price.length && sel.length && size.length) {
// die Arrays waren nicht leer -> jeweils erstes Element nehmen
price = price[0];
sel = sel[0];
size = size[0];
// Daten auswerten (prüfen, ob die gewählten Werte in den Daten stehen)
if (data[sel.value] && data[sel.value][size.value]) {
price.value = data[sel.value][size.value];
} else {
price.value = 0;
}
}
}
Der Code ist nicht getestet. Aber vielleicht bringt er Dich auf Ideen...?
Sollte die Funktion einmal mehrere Formulare bedienen, kann man die eins am Ende der Feldnamen sogar von der Funktion hinzurechnen lassen und im onchange-Attribut entsprechend übermitteln:
<select name="Sorte7" onchange="Preis(7)">...
function Preis (index) {
...
var price = document.getElementsByName("Preis" + index); // ergibt ein Array
...
}
Liebe Grüße,
Felix Riesterer.
--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)