svwler: Arrayproblem

Beitrag lesen

Mein Problem ist, dass alle Elemente gefunden werden aber mit push nicht wie erwartet drei Zeilen ausgegeben werden sondern nur eine. Jedes Element überschreibt die Array[2]-Zeile. Ich weiß aber nicht was ich falsch mache.

Was ist die Array[2] Zeile?
Und wieso sollten mit dem push drei Zeilen ausgegeben werden? ausgegeben sowieso nicht, aber du fügst nur HTML Code für eine Zeile in das Array.

also er findet in diesem beispiel 3 Elemente welche ich in diesem Array eintragen will:

b_bestand[0][0]  -  b_bestand[0][11]
bis
 b_bestand[n][0]  -  b_bestand[n][11]

hier werden alle 3 Elemte in

b_bestand[2][0]  -  b_bestand[2][11]

geschrieben also 1. eingefügt und das zweite überschreibt es wieder.

So das Script:

ich hab's nicht probiert aber ich bezweifle, dass man damit etwas anfangen kann, der Code läuft nicht.

for (zaehlerAuftr = 0; (zaehlerAuftr < aufAnzahl) && (foundAnz == -1);  zaehlerAuftr++) {

Sowas ist sehr unsauber, du verwendest hier global gültige Schleifenzähler, das kann zu unangenehmen Seiteneffekten mit schwer zu findenen Fehlern führen, mein Rat: verwende var!

habe weiter oben in diesem Script alles mit var definiert.

b_bestand[foundPos] = new Array(ExNumin, ExNomEta, ExPlz, ExOrt, ExGebiet, lastLief, datum_array[0][1], durchQte, durchRytmus, nextLief, anzLief, warning );
           }
           else {
               b_bestand[foundPos][0] = ExNumin;
                b_bestand[foundPos][1] = ExNomEta;
                b_bestand[foundPos][2] = ExPlz;
                b_bestand[foundPos][3] = ExOrt;
                b_bestand[foundPos][4] = ExGebiet;
                b_bestand[foundPos][5] = lastLief;
                b_bestand[foundPos][6] = datum_array[0][1];
                b_bestand[foundPos][7] = durchQte;
                b_bestand[foundPos][8] = durchRytmus;
                b_bestand[foundPos][9] = nextLief;
                b_bestand[foundPos][10] = anzLief;
                b_bestand[foundPos][11] = warning;
           }

So ganz klar, warum du hier zwei unterschiedliche Methoden anwendest ist mir das nicht.

Array.Push fügt doch am Ende eines Arrays ein oder mehrere Elemente hinzu und gibt die neue Länge des Arrays aus.

also müsste ich hier doch dann drei Zeilen haben und nicht eine.

//und hier wird nun jedes tr-Array beim foundPos überschrieben.

tr.push("<tr class='text10'><td>"+  b_bestand[foundPos][1] +"</td><td>"+  b_bestand[foundPos][2] +"</td><td>"+  b_bestand[foundPos][3] +"</td><td>"+  b_bestand[foundPos][4] +"</td><td>"+  b_bestand[foundPos][5] +"</td><td>"+  b_bestand[foundPos][6] +"</td><td>"+  b_bestand[foundPos][7] +"</td><td>"+  b_bestand[foundPos][8] +"</td><td>"+  b_bestand[foundPos][9] +"</td><td>"+  b_bestand[foundPos][10] +"</td><td>"+  b_bestand[foundPos][11] +"</td></tr>");

//also er zählt nicht von 0-Anzahl der Elemente

Was beudetet das?

Struppi.

und so geht es dann weiter im Script:

tr      = tr.sort();
var zeilen  = tr.length;
var mHtml   = "";

for(var p=0; p <= zeilen-1; p++) {
  if(zeilen > 0) {
    mHtml += ""+ tr[0]+ "";
    tr.shift();
  }
  else  {
    mHtml += "  <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>";
  }
}

var sHtml ="<table class='sample1' id='lien' width='100%' border='0'><tr><td width='43%'><div id='lien' align='left'><a class='link7' href='javascript:window.print()'><img id='lien' border='0' src='print.bmp'><span class='text10'>Seite drucken</span></a></div></td><td width='10%'>&nbsp;</td><td width='47%'></td></tr></table>";

var tHtml = "";

tHtml += "<p class='text12b'>";
tHtml += " <table class='tab' width='100%' border='0' cellspacing='0' cellpadding='5'>";
tHtml += "   <thead class='text12b' bgcolor='#CCCCCC'>";
tHtml += "     <th>Überschrift1</th>";
tHtml += "     <th>Überschrift2</th>";
tHtml += "     <th>Überschrift3</th>";
tHtml += "     <th>Überschrift4</th>";
tHtml += "     <th>Überschrift5</th>";
tHtml += "     <th>Überschrift6</th>";
tHtml += "     <th>Überschrift7</th>";
tHtml += "     <th>Überschrift8</th>";
tHtml += "     <th>Überschrift9</th>";
tHtml += "     <th>Überschrift10</th>";
tHtml += "     <th>Überschrift11</th>";
tHtml += "   </thead>" + mHtml + "  ";
mHtml = "";
tHtml += "  </table>";

printlink.innerHTML = sHtml;
looplistCSS.innerHTML = tHtml;

...