Enrico: Blättermechanismus funktioniert nicht

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

  1. Hallo,

    Einfachheit ist die freiwillige Beschränkung auf das Wesentliche. (Andreas Tenzer). Und manche Leute sind verdammt kompliziert.

    Enrico

    mfg, Flo

    --
    Developers are dying. Computers are getting trash. CEO's become forgetten. The only remaining things are ideas, lies and crises. So if you want to be immortal, first think, than stop it and go to microsoft and become later a manager at Lehman Brothers...
    sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
    *Zu dem de:> Ich benutze wegen IE im moment noch tabellen, weil dieser display:table noch nicht versteht. Ich werde aber, wenn IE 6 & IE 7 < 10% mein neues CSS-Layout einspielen...
    1. Hallo Flo,

      ich bin für jeden Verbesserungsvorschlag offen, v.a. wenn es dann klappt

      Enrico

      1. Hallo,

        Es würde viel helfen, entweder eine Online-Demo zu machen[1] oder den Quelltext zu kürzen.

        [1] Die Leute hier helfen freiwillig, da kann man nicht erwarten, dass sie für jedes Problem lokal eine eigene HTML-Datei anlegen.

        mfg, Flo

        --
        Developers are dying. Computers are getting trash. CEO's become forgetten. The only remaining things are ideas, lies and crises. So if you want to be immortal, first think, than stop it and go to microsoft and become later a manager at Lehman Brothers...
        sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
        *Zu dem de:> Ich benutze wegen IE im moment noch tabellen, weil dieser display:table noch nicht versteht. Ich werde aber, wenn IE 6 & IE 7 < 10% mein neues CSS-Layout einspielen...
        1. Hallo Flo,

          habe das Problem schon gelöst, es lag an folgenden beiden dummen Fehlern

          1. Ich hatte "oncklick" statt "onclick" notiert
          2. Ich hatte drei abschliessende ")" vergessen

          Zuguterletzt fehlte in der Funktion noch die Prüfung "if (Ende > Anzahl_Filme)"

          Gruß
          Enrico