Hallo,
ich habe mir - zu Testzwecken - eine Seite gebastelt, die die grundsätzliche Funktionalitäten meiner DVD-Verwaltung beinhaltet:
Die Erzeugung der "Datenbank" und der Blätterfunktion und die Ausgabe der zugehörigen Filmdaten, hier nur die DVD-Nr.
Die Initialisierung funktioniert, d.h. ich bekomme am Bildschirm die Seitennavigation und die ersten 30 DVD-Nr. ausgegeben.
Was nicht funktioniert, ist das Weiterblättern mit Anzeige der Einträge, die der jeweiligen Seitennummer entsprechen,
verbunden mit Anpassung der Seitennavigation.
Beim Anklicken auf eine beliebige angezeigte Seitennummer passiert gar nichts am Bildschirm, auf der anderen Seite bekomme
ich aber auch keine Warnung oder Fehlermeldung in der Firefox-Fehlerkonsole.
Den Blättermechanismus habe ich fast 1:1 von einem php-Script übernommen und in Javascript "übersetzt".
Hier die komplette Seite (an dieser Stelle möchte ich gleich um Nachsicht wegen der Länge bitten; einen Online-Link kann ich
leider nicht bieten, da die Seite nur lokal laufen wird und ich keinen Webspace besitze):
<html>
<head>
</head>
<body onload="Datenbank_aufbauen (); Blaetterfunktion_aufbauen (1);">
<iframe class="Rohdaten" src="BIBLIOTHEKEN/Filmdaten.txt" width="0" height="0" border="0" frameborder="0"></iframe>
<script type="text/javascript" language="javascript">
<!--
var Film = new Array ();
var Temp = new Array ();
var Anzahl_Filme;
var Aktuelle_Seite;
var Anzahl_Filme_pro_Seite = 30;
function Datenbank_aufbauen ()
{
var Rohdaten = top.window.frames [0].document.body.innerHTML;
var Einzelne_Filme = Rohdaten.split ("\n");
for (var i = 0; i < Einzelne_Filme.length; i++)
{
var Spalten = Einzelne_Filme [i].split ("|");
Film [i] = new Object ();
Film [i]["Nr"] = Spalten [0];
Film [i]["Titel"] = Spalten [1];
Film [i]["Inhalt"] = Spalten [2];
Film [i]["Genre"] = Spalten [3];
Film [i]["FSK"] = Spalten [4];
}
Anzahl_Filme = Film.length;
}
function intval (mixed_var, base)
{
var tmp;
if (typeof (mixed_var) == "string")
{
tmp = parseInt (mixed_var * 1);
if (isNaN (tmp) || !isFinite (tmp))
{
return 0;
}
else
{
return tmp.toString (base || 10);
}
}
else
{
if (typeof (mixed_var) == "number" && isFinite (mixed_var))
{
return Math.floor (mixed_var);
}
else
{
return 0;
}
}
}
function Blaetterfunktion_aufbauen (Aktuelle_Seite)
{
Anzahl_Seiten = intval (Anzahl_Filme / Anzahl_Filme_pro_Seite) + 1;
if (Anzahl_Filme % Anzahl_Filme_pro_Seite == 0)
{
Anzahl_Seiten--;
}
if (Aktuelle_Seite <= 0)
{
Aktuelle_Seite = 1;
}
if (Aktuelle_Seite > Anzahl_Seiten)
{
Aktuelle_Seite = Anzahl_Seiten;
}
Alle_Eintraege_anzeigen = false;
Anzahl_Seitenverweise_Links = 3;
Anzahl_Seitenverweise_Rechts = 3;
Verweis_auf_erste_Seite = true;
Verweis_auf_letzte_Seite = true;
Trennzeichen_zwischen_den_Seiten = " - ";
Trennzeichen_bei_ausgeblendeten_Seiten = " ... ";
Blaetterfunktion_Ausgabe = "";
if (Alle_Eintraege_anzeigen)
{
for (i = 1; i <= Anzahl_Seiten; i++)
{
if (i > 1)
{
Blaetterfunktion_Ausgabe += Trennzeichen_zwischen_den_Seiten;
}
if (i == Aktuelle_Seite)
{
Blaetterfunktion_Ausgabe += '<strong>' + i + '</strong>';
}
else
{
Blaetterfunktion_Ausgabe += '<a href="javascript:void (0);" oncklick="Blaetterfunktion_aufbauen (' + i + ');">' + i + '</a>';
}
}
}
else
{
Seiten_ausblenden = false;
for (i = 1; i <= Anzahl_Seiten; i++)
{
if (i == Aktuelle_Seite)
{
if (i > 1 && !Seiten_ausblenden)
{
Blaetterfunktion_Ausgabe += Trennzeichen_zwischen_den_Seiten;
}
Blaetterfunktion_Ausgabe += '<strong>' + i + '</strong>';
}
else
{
if (i == 1 && Verweis_auf_erste_Seite)
{
if (i > 1 && !Seiten_ausblenden)
{
Blaetterfunktion_Ausgabe += Trennzeichen_zwischen_den_Seiten;
}
Blaetterfunktion_Ausgabe += '<a href="javascript:void (0);" oncklick="Blaetterfunktion_aufbauen (' + i + ';">' + i + '</a>';
}
else
{
if (i == Anzahl_Seiten && Verweis_auf_letzte_Seite)
{
if (i > 1 && !Seiten_ausblenden)
{
Blaetterfunktion_Ausgabe += Trennzeichen_zwischen_den_Seiten;
}
Blaetterfunktion_Ausgabe += '<a href="javascript:void (0);" oncklick="Seite_anzeigen (' + i + ';">' + i + '</a>';
}
else
{
if (i >= (Aktuelle_Seite - Anzahl_Seitenverweise_Links) && i <= (Aktuelle_Seite + Anzahl_Seitenverweise_Rechts))
{
if (i > 1 && !Seiten_ausblenden)
{
Blaetterfunktion_Ausgabe += Trennzeichen_zwischen_den_Seiten;
}
Seiten_ausblenden = false;
Blaetterfunktion_Ausgabe += '<a href="javascript:void (0);" oncklick="Blaetterfunktion_aufbauen (' + i + ';">' + i + '</a>';
}
else
{
if (!Seiten_ausblenden)
{
Seiten_ausblenden = true;
Blaetterfunktion_Ausgabe += Trennzeichen_bei_ausgeblendeten_Seiten;
}
}
}
}
}
}
Blaetterfunktion_Container = document.getElementById ("Blaetterfunktion_Container");
Blaetterfunktion_Container.innerHTML = Blaetterfunktion_Ausgabe;
}
Seite_anzeigen (Aktuelle_Seite);
}
function Seite_anzeigen (Aktuelle_Seite)
{
var Anfang = (Aktuelle_Seite * Anzahl_Filme_pro_Seite) - Anzahl_Filme_pro_Seite;
var Ende= Anfang + Anzahl_Filme_pro_Seite;
var Ausgabe = "";
for (var i = Anfang; i < Ende; i++)
{
Ausgabe += Film [i]["Nr"];
if (i < (Ende - 1))
{
Ausgabe += ", ";
}
}
var Anzeigebereich = document.getElementById ("Anzeigebereich");
Anzeigebereich.innerHTML = Ausgabe;
}
-->
</script>
<div id="Blaetterfunktion_Container"></div>
<div id="Anzeigebereich"></div>
</body>
</html>
Ich hoffe, ihr könnt mir bei der Beseitigung des/der Fehlers/Fehler bzw. auch Optimierung des Codes behilflich sein.
Schon mal vielen lieben Dank im Voraus.
Gruß
Enrico