Rolf B: javascript value auslesen und setzen

Beitrag lesen

Hallo eddi-z,

ich tue mal so als würde $za[REC_ID] den Wert 3 enthalten, und die Menge ist 47.

Guck in die Konsole der Browser-Entwicklerwerkzeuge. Da wird etwas stehen wie:

Uncaught TypeError: Cannot read property '3' of undefined

Warum? JavaScript ist nicht PHP. Ich löse mal deine echos auf. Dann hast Du dieses HTML:

<input type='text' name='aktMenge[3]' value = '47' class = 'eingabe' size='10'>

Die Gleichheitszeichen solltest Du nicht mit Spaces einrahmen. Das ist zwar nicht falsch, aber es ist sehr unüblich und es verbessert auch nicht die Lesbarkeit.

Wenn dieses input in einem Form ist und das Form mit POST an ein PHP Script gesendet wird, dann interpretiert PHP die eckigen Klammern im Namen und erzeugt unter $_POST['aktMenge'] ein Array, in dem es dieses Feld unter Index 3 einträgt.

Das ist aber eine PHP Eigenschaft, und es heißt nicht, dass dieses Array auch für JavaScript, im DOM, existierte. Dein Form hat ein Input-Element mit Name 'aktMenge[3]', und nur unter diesem Namen kannst Du darauf zugreifen. Da der Name des Form-Elements kein gültiger Eigenschaftsname von JavaScript ist, ist der Gebrauch der Punkt-Schreibweise nicht möglich, du musst die [] Schreibweise wählen, so wie Du es für das Form gemacht hast. Ironischerweise ist es beim Form nicht nötig, da würde auch document.forms.zahlung funktionieren. Es ist aber sicherlich ganz gut, wenn Du die Zugriffstechnik konsequent gleich hältst.

Mein Vorschlag:

   function zubuchen(a) {
    var inputName = 'aktMenge['+a+']';
		var stckNeu = document.forms['zahlung'][inputName].value;
		console.log("Zubuchung aus " + inputName + ": " + stckNeu);
	}

console.log statt alert, Log-Ausgaben siehst Du im Konsolenfenster der Entwicklerwerkzeuge, die Du beim Bauen von JavaScript ohnehin ständig öffen haben solltest.

Rolf

--
sumpsi - posui - clusi