bernhard.s: daten strukturieren

Beitrag lesen

Hallo Andreas,

erst Mal entschuldige, dass ich am Wochenenden nicht geantwortet habe, war mir doch zu Heiß.

Hier liest Du drei Zahlen- (?) Werte aus einem Formular:

var punkt = document.form1.punkt_position.value;   // Punkt, den der User grade ausgewählt hat
var seiteJ = document.form1.gewaehlte_seite.value; // gerade ausgewählte Seite
var punktZahl = document.form1.punkt_anzahl.value; // die Anzahl der Punkt auf eine Seite

Diese Werte werden schon früher gesetzt.

Was ich immer noch nicht so ganz verstehe ist, warum Du weitere Arrays erzeugst, aber nirgendwo Werte in diesen Arrays speicherst.

Wie kann ich die Werte dort die Werte speichern? An dieser Stelle habe ich ein leeren Array, was Du oben schreibst, stimme ich Dir zu.
Ich habe folgendes versucht:

var seiten = new Array(4); // Anzahl der Seiten
function werte(element){
 var punkt = document.form1.punkt_position.value;   // Punkt, den der User grade ausgewählt hat
 var seiteJ = document.form1.gewaehlte_seite.value; // gerade ausgewählte Seite
 var punktZahl = document.form1.punkt_anzahl.value; // die Anzahl der Punkt auf eine Seite

for(var i=0; i<=punktZahl; i++){
  if(i==(seiteJ-1)){
   seiten[(seiteJ-1)] = new Array(i);
  }
 }
/*

Nehmen wir der Einfachheit halber mal an, wir befinden und auf Seite 2 und diese Seite hat 3 Punkte.
Dann macht die obige Schleife folgendes:

i=0 -> Im zweiten Element des Arrays seiten (seiten[1]) wird ein neues Array mit 0 Elementen gespeichert
i=1 -> Im zweiten Element des Arrays seiten (seiten[1]) wird ein neues Array mit 1 Element gespeichert
i=2 -> Im zweiten Element des Arrays seiten (seiten[1]) wird ein neues Array mit 2 Elementen gespeichert
Ergebnis:
Das erste Element des Arrays seiten (seiten[0]) ist leer.
Das zweite Element des Arrays seiten (seiten[1]) enthält ein Array mit zwei (leeren) Elementen.
Das dritte Element des Arrays seiten (seiten[2]) ist leer.
Das vierte Element des Arrays seiten (seiten[3]) ist leer.

So weit so gut, ich erstelle nur leere Arrays :-(
In der nächst Schleife möcht ich sie fühlen:
*/
 for(var i=0; i<=punktZahl; i++){
  if(i==(punkt-1)){
  seiten[(seiteJ-1)][i] = new Array(element);
  }
 }
/*
In dem von User grade ausgewählten Punkt möchte ich den Elementnummer "element" speichern, leider wird er bei jedem neu gewählten Punkt überschrieben.
Was hältst Du von diese Methode?

Noch etwas, als Kontrollausgabe gebe ich die Variable "seiten" in einem alert Fenster aus und lasse die eine for Schleifen ablaufen:
*/
 var aus="";
 for(var i=0; i<=seiten.length; i++){
  aus += seiten[0][i]+", "+seiten[i]+"\n";
 }
 alert(seiten+"\n\n"+aus);
}

Ich nehme mal an, das soll seiten heissen, und nicht seite. Mit
seite[0] = new Array(punktZahl)
erreichst Du doch genau das. Allerdings ist dieses Array dann noch leer und muß mit Werten gefüllt werden.

Ja, stimmt, ich habe mich eben falls vertipt.

Grüße Bernhard