nicnac: value eines Inputs für Berechnung und Ausgabe der Berechnung

hallo forum,

ich wurschtel mich schon den ganzen tag durch php und js, obwohl mir xhtml und css wirklich besser liegen.

versuche eine berechnung eines formulares -> stückzahl, preis, gesamt - wie folgt hinzubekommen:

achja, die berechnung soll bei onchange erfolgen:

1 array für die preise, bei 22 artikeln
var ep = new Array();
 ep[0] = 255;
 ep[1] = 355;
...

//stückzahlwerte von inputfeldern an array übergeben.
var stkzahl = new Array();
 stkzahl[0] = document.formular.stk1.value;
 stkzahl[1] = document.formular.stk2.value;
 stkzahl[2] = document.formular.stk3.value;
...

function berechne(nummer,fname)
{
 var i = nummer;
 i = i-1;
 if (stkzahl[i]!="")
 {
  var summe = new Array();
  summe[i] = parseInt(ep[i]) * 2;
  //parseInt(stkzahl[i]);
  document.formular[fname].value = summe[i];
  //alert(stkzahl[i]);
  //alert(ep[i]);
}}

der aufruf erfolgt im stkzahl-inputfeld, wie folgt:
 onChange="berechne('1','sum1')"

zurzeit kann ich nur fest berechnen, siehe Zeile summe[i] = parseint(ep[i]) *2, er bringt mir sonst im Ausgabefeld ein NaN und wenn ich mit alert die Stückzahl ausgeben will, sagt er mir 'undefined'. liegt das vielleicht daran, das value #cdata als Wert zurückgibt?
Oder ist mein Ansatz komplett verkehrt?
ich hatte zuerst eine for-schleife, war mir aber nicht sicher, ob das überhaupt von nöten ist.

(ach sorry, hab schon wieder nur klein geschrieben...)

lg
nicole

  1. nicnac,

    liegt das vielleicht daran, das value #cdata als Wert zurückgibt?

    Ja, Formulareingabefelder sind Textfelder.

    Gunnar

    --
    „Solang wir noch tanzen können
    und richtig echte Tränen flennen,
    ist noch alles offen,
    ist noch alles drin.“
    (Gundermann)
    1. hallo gunnar,

      liegt das vielleicht daran, das value #cdata als Wert zurückgibt?

      Ja, Formulareingabefelder sind Textfelder.

      hm, ok, dann scheint ja wenigstens die rechereche heute bei mir noch zu klappen. mir rauchte nämlich schon der schädel, bevor ich dies in selfhtml fand.
      hättest du nen tipp für mich, wie ich das hinbekomme?

      nicole

      1. nicnac,

        hättest du nen tipp für mich, wie ich das hinbekomme?

        Sauber mit parseFloat() bzw. parseInt() .

        Quick and dirty – das verraten bestimmt andere.
        Gunnar

        --
        „Solang wir noch tanzen können
        und richtig echte Tränen flennen,
        ist noch alles offen,
        ist noch alles drin.“
        (Gundermann)
        1. hallo gunnar,

          wollt schon sagen *handvordenkopfschlagend* das ist es... hatte es nur falsch angewendet.
          parse_float oder parse_int wollen bei mir aber nicht, oder ich kann das nicht? ;-)

          hier die funktion:

          function berechne(nummer,fname)
          {
           var i = nummer;
           i = i-1;
           if (stkzahl[i]!=""){
            var summe = new Array();
            summe[i] = ep[i] * parseInt(stkzahl[i]);
            document.formular[fname].value = summe[i];
                   }
          }
          und dann habe ich den value-wert direkt mit parseInt an das array übergeben: siehe hier:

          var stkzahl = new Array();
           stkzahl[0] = parseInt(document.formular.stk1.value);

          ach man ist das ärgerlich,
          ich finde einfach nicht mehr den fehler heute

          nicole

          1. hallo gunnar,

            wollt schon sagen *handvordenkopfschlagend* das ist es... hatte es nur falsch angewendet.
            parse_float oder parse_int wollen bei mir aber nicht, oder ich kann das nicht? ;-)

            das war ja wohl vollkommener quatsch, was ich da eben schrieb. habe nicht richtig nachgelesen ;-(

            das macht sich ja gar nicht so einfach. ich wüßte nicht wie.
            vielleicht sollte ich doch mit absenden und verarbeiten mittels php arbeiten

            gruß
            nicole