Felix Riesterer: Script rechnet nicht

Beitrag lesen

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:)