Array in Tabellenform zusammengefasst ausgeben
Enrico
- javascript
Hallo,
ich stecke gerade an einem programmiertechnischen Problem fest bzw. vielmehr an der Logik, wie ich folgendes Vorhaben mit Javascript am Elegantesten umsetzen kann:
Ich lese eine Textdatei in einen versteckten frame ein und erzeuge anschliessend ein Array aus den einzelnen Zeilen dieser Textdatei:
<iframe id="Rohdaten" src="txt/Eintraege.txt" frameborder="0"></iframe>
Rohdaten = Rohdaten.contentWindow.document.body.innerHTML;
Rohdaten = Rohdaten.replace(/<[^>]*>/i, "");
Rohdaten = Rohdaten.replace(/"/i, """);
var Einzelne_Eintraege = Rohdaten.split("\n");
Anzahl_Eintraege = Einzelne_Eintraege.length;
for (var i = 0; i < Anzahl_Eintraege; i++)
{
var Spalte = Einzelne_Eintraege[i].split("|");
Eintrag[i] = new Array();
Eintrag[i]["Name"] = Spalte[0];
Eintrag[i]["Datum"] = Spalte[1];
Eintrag[i]["Uhrzeit"] = Spalte[2];
Eintrag[i]["Inhalt"] = Spalte[3];
Eintrag[i]["eMail"] = Spalte[4];
Eintrag[i]["Homepage"] = Spalte[5];
}
Das eben erzeugte Array "Eintrag" will ich nun formatiert in Tabellenform ausgegeben. Hierbei sollen jeweils 10 Array-Elemente, respektive der verbleibende Rest bis "Anzahl_Eintraege", in einer Tabelle zusammengefasst werden.
Und genau an dieser Umsetzung hänge ich, weil ich nicht weiß, wie ich dieses Zusammenfassen am Elegantesten umsetzen kann.
Dies ist mein derzeitiger Ansatz (Klassenzuweisungen zur Formatierung habe ich hier jetzt weggelassen):
var Tabelle = "";
var Zaehler = 1;
var Umschalter = 0;
for (var i = 0; i < Anzahl_Eintraege; i++)
{
if (Umschalter == 0)
{
if (i == 0)
{
Tabelle += '<table id="Seite_1">';
}
else
{
Tabelle += '<table id="Seite_' + i + '" style="display:none;">';
}
}
Tabelle += '<tr>'
+ '<td></td>';
+ '</tr>';
+ '<tr>';
+ '<td>' + Eintrag[i]["Inhalt"] + '</td>';
+ '</tr>';
+ '<tr>';
+ '<td></td>';
+ '</tr>';
+ '<tr>';
+ '<td>' + Eintrag[i]["Name"] + '<br>' + Eintrag[i]["Datum"] + '<br>' + Eintrag[i]["Uhrzeit"] + ' Uhr</td>';
+ '</tr>';
if (Umschalter == 0)
{
Tabelle += '</table>';
Umschalter = 1;
}
Zaehler += 1;
if ((Zaehler == 10) || (i + 1 == Anzahl_Eintraege))
{
Umschalter = 0;
}
}
V.a. weiß ich nicht, wie ich bei der letzten if-Abfrage die oder-Prüfung gestalten soll, um die Variable "Umschalter" wieder auf 0 zu setzen, für den Fall, dass eben nicht mehr 10 Zeilen bis zum Erreichen der Anzah-Eintraege zur Verfügung stehen.
Ich hoffe, ihr versteht, was ich meine, und könnt mir helfen.
Vielen Dank und Gruß
Enrico
Grüße,
ich bin zu fau das genau auseinanderzunehmen - also rate ich mal intuitiv^^ falls umschalter dazu da ist den schließenden tag der tabelle zu setzen, zieh den aus der schleife.
mal sehe ob ich morgen facepalme....
MFG
bleicher
Grüße zurück,
falls umschalter dazu da ist den schließenden tag der tabelle zu setzen
Diese Variable soll die Tabelle einleiten und abschließen, falls Zaehler auf 10 steht und damit 10 Array-Elemente zusammengefasst sind ODER ... Das Problem mit der oder-Abfrage.
Gruß
Enrico
Grüße,
du willst das ganez in 10er blöcke scheniden?
also eigene tabelel je 10 einträge?
i%10 sei mit dir.
MFG
bleicher
Hallo,
du willst das ganez in 10er blöcke scheniden?
Erstmals ja, aber wie integriere ich die zwei, drei, vier,... neun letzten Array-Elemente in mein Konstrukt, die eben keinen 10er-Block mehr ergeben?
Dies ist mein Problem neben der höchstwahrscheinlich umständlichen bzw. unschönen Formulierung.
Gruß
Enrico
Grüße,
wenn i<array.length und !i%10, +="</table><table>"
wenn i=ding.length, +=</table> und break;
MFG
bleicher
Hey Enrico,
du willst das ganez in 10er blöcke scheniden?
Erstmals ja, aber wie integriere ich die zwei, drei, vier,... neun letzten Array-Elemente in mein Konstrukt, die eben keinen 10er-Block mehr ergeben?
das hat bleicher Dir doch schon geschrieben. Nutze den Modulus-Operator.
Gruß, Dennis
Sorry, Themenbereich war ja JavaScript und nicht PHP. Der Modulus-Operator macht aber auch hier das gleiche. <http://de.selfhtml.org/javascript/sprache/operatoren.htm#berechnung@title=Das findest Du z.B. in der Referenz bei SelfHTML>.
Gruß, Dennis