Kai345: Dyn. erzeugte Tabelle wird nicht angezeigt

Beitrag lesen

Grütze .. äh ... Grüße!

Das Array "FILMDATEN" mit den Details zu den einzelnen Filmen wird in der
Datei "JS_DATENBANK.js" nach folgendem Muster definiert:

var FILMDATEN = new Array(
   "{DVD-Nr.}","{Titel}","{Inhalt}","{Genre}","{FSK}",
   "{DVD-Nr.}","{Titel}","{Inhalt}","{Genre}","{FSK}",
   ...usw...

Das ist für deine Zwecke so nicht anwendbar. Du versuchst hier, zwei Techniken zu kombinieren und außerdem benötigst du ein zweidimensionales Array.

Entweder:

FILMDATEN=new Array();  
FILMDATEN[0] = ["{DVD-Nr.}","{Titel}","{Inhalt}","{Genre}","{FSK}"];  
FILMDATEN[1] = ["{DVD-Nr.}","{Titel}","{Inhalt}","{Genre}","{FSK}"];  
usw.  

oder

FILMDATEN=[  
  ["{DVD-Nr.}","{Titel}","{Inhalt}","{Genre}","{FSK}"],  
  ["{DVD-Nr.}","{Titel}","{Inhalt}","{Genre}","{FSK}"],  
  ....  
  ["{DVD-Nr.}","{Titel}","{Inhalt}","{Genre}","{FSK}"]  
];

(Zu Beachten: das fehlende Komma nach dem letzten Eintrag!)

Nachteil: Man weiß nicht, welcher Film welche Nummer hat.

Ich persönlich würde es als JSON-Objekt aufbauen, dann ist es möglich, die Daten viel deutlicher  zuzuordnen; man kann die Reihenfolge verändern, man kann auch mal bestimmte Daten weglassen (Das alles müßte dann natürlich die Funktion abfangen)

Sähe dann z.B. so aus:

var FILMDATEN = {  
  "film1": {  
    "DVD-Nr." : 1,  
    "Titel" : "SelfHTML für Anfänger",  
    "Genre" : "Lehrvideo",  
    "FSK" : "OA"  
  },  
  "film2": {  
    //mehr Daten  
  }  
};

(ich hab es mal zur Anschaulichkeit schön untereinander geschrieben, geht natürlich auch pro Film in einer Zeile.) Umwandlung von deiner jetzigen Form dürfte auch kein Thema sein, schreib dir ne Funktion, die die Arraydaten mit document.write ausgibt und setze die Formatierungen als Text dazwischen. Done.

function TABELLE_ANZEIGEN(ARRAY)
   {
     var TABELLE;

TABELLE+='='<TABLE CELLPADDING="0" CELLSPACING="0" BORDER="0" CLASS="rowstyle-alt colstyle-alt no-arrow">';

Diese Zeile ist falsch.

Du startest mit TABELLE+= dann beginnt der String mit '= und dann schließt du ihn wieder mit ' wodurch <TABLE .. als fehlerhafter Programmcode stehen bleibt.

TABELLE+='</TR>';

Außerdem alle schließenden Elemente so schreiben

</element>  d.h. den "/" mit "" escapen

for(var i=0;i==ARRAY.length();i++)

Außerdem nennst du den übergebenen Paramenter der funktion "ARRAY", was abgesehen von der Großschreibung einen reservierten Namen darstellt, also nicht nutzen!

Ansonsten ist deine konsequente Großschreibung bei HTML und Javascript ungünstig, schreib besser alle Variablen und die HTML-Tags klein.

document.write(TABELLE);

damit überschreibst du dein Dokument wieder, d.h. das HTML in DVD-VERWALTUNG.html wird komplett überschrieben. Du mußt die Tabelle an das vorhandene Element anhängen. Da ich diese Schreibung eigentlich nicht benutze, weiß ich jetzt nicht, ob

document.body.innerHTML += TABELLE;

so funktioniert. Ansonsten wird mich jemand berichtigen ;)

Wo liegt der Fehler ?

Welchen der vielen meinst du? *g*


Kai

--
What is the difference between Scientology and Microsoft? One is an
evil cult bent on world domination and the other was begun by L. Ron
Hubbard.
ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|