Was wäre denn Deiner Meinung nach der richtige Weg zum Befüllen der Listen?
Aktuell erledige ich das über folgende Funktion:
function Auswahllisten_aufbauen (Film)
{
var Array_Anfangsbuchstaben = new Array ();
var Array_Genres = new Array ();
var Array_FSK = new Array ();
var Array_Darsteller = new Array ();
var Array_Produzenten = new Array ();
var Array_Regisseure = new Array ();
var Liste_Anfangsbuchstaben = "";
var Liste_Genres = "";
var Liste_FSK = "";
var Liste_Darsteller = "";
var Liste_Produzenten = "";
var Liste_Regisseure = "";
for (var i = 0; i < Film.length; i++)
{
var Neuer_Eintrag = Film[i]["Titel"].substring(0,1);
if (is_numeric (Neuer_Eintrag))
{
Neuer_Eintrag = "#";
}
if (! Array_Anfangsbuchstaben.contains (Neuer_Eintrag))
{
Array_Anfangsbuchstaben.push(Neuer_Eintrag);
}
if (! Array_Genres.contains (Film[i]["Genre"]))
{
Array_Genres.push(Film[i]["Genre"]);
}
if (! Array_FSK.contains (Film[i]["FSK"]))
{
Array_FSK.push(Film[i]["FSK"]);
}
for (var j = 0; j < Film[i]["Darsteller"].length; j++)
{
if (! Array_Darsteller.contains (Film[i]["Darsteller"][j]))
{
Array_Darsteller.push(Film[i]["Darsteller"][j]);
}
}
for (var j = 0; j < Film[i]["Produzenten"].length; j++)
{
if (! Array_Produzenten.contains (Film[i]["Produzenten"][j]))
{
Array_Produzenten.push(Film[i]["Produzenten"][j]);
}
}
for (var j = 0; j < Film[i]["Regisseure"].length; j++)
{
if (! Array_Regisseure.contains (Film[i]["Regisseure"][j]))
{
Array_Regisseure.push(Film[i]["Regisseure"][j]);
}
}
}
Array_Anfangsbuchstaben.sort (Sortierung_alphabetisch);
Array_Genres.sort (Sortierung_alphabetisch);
Array_FSK.sort (Sortierung_numerisch);
Array_Darsteller.sort (Sortierung_alphabetisch);
Array_Produzenten.sort (Sortierung_alphabetisch);
Array_Regisseure.sort (Sortierung_alphabetisch);
for (var i = 0; i < Array_Anfangsbuchstaben.length; i++)
{
Liste_Anfangsbuchstaben += '<li><a onclick="Tabelle_filtern (Film, 'Anfangsbuchstabe', '' + Array_Anfangsbuchstaben[i] + '')">' + Array_Anfangsbuchstaben[i] + '</a></li>';
}
for (var i = 0; i < Array_Genres.length; i++)
{
Liste_Genres += '<li><a onclick="Tabelle_filtern (Film, 'Genre', '' + Array_Genres[i] + '')">' + Array_Genres[i] + '</a></li>';
}
for (var i = 0; i < Array_FSK.length; i++)
{
Liste_FSK += '<li><a onclick="Tabelle_filtern (Film, 'FSK', '' + Array_FSK[i] + '')">' + Array_FSK[i] + '</a></li>';
}
for (var i = 0; i < Array_Darsteller.length; i++)
{
Liste_Darsteller += '<li><a onclick="Tabelle_filtern (Film, 'Darsteller', '' + Array_Darsteller[i] + '')">' + Array_Darsteller[i] + '</a></li>';
}
for (var i = 0; i < Array_Produzenten.length; i++)
{
Liste_Produzenten += '<li><a onclick="Tabelle_filtern (Film, 'Produzenten', '' + Array_Produzenten[i] + '')">' + Array_Produzenten[i] + '</a></li>';
}
for (var i = 0; i < Array_Regisseure.length; i++)
{
Liste_Regisseure += '<li><a onclick="Tabelle_filtern (Film, 'Regisseure', '' + Array_Regisseure[i] + '')">' + Array_Regisseure[i] + '</a></li>';
}
var Auswahl_Anfangsbuchstabe = window.document.getElementById ("Auswahl_Anfangsbuchstabe");
var Auswahl_Genre = window.document.getElementById ("Auswahl_Genre");
var Auswahl_FSK = window.document.getElementById ("Auswahl_FSK");
var Auswahl_Darsteller = window.document.getElementById ("Auswahl_Darsteller");
var Auswahl_Produzent = window.document.getElementById ("Auswahl_Produzent");
var Auswahl_Regisseur = window.document.getElementById ("Auswahl_Regisseur");
Auswahl_Anfangsbuchstabe.innerHTML = Liste_Anfangsbuchstaben;
Auswahl_Genre.innerHTML = Liste_Genres;
Auswahl_FSK.innerHTML = Liste_FSK;
Auswahl_Darsteller.innerHTML = Liste_Darsteller;
Auswahl_Produzent.innerHTML = Liste_Produzenten;
Auswahl_Regisseur.innerHTML = Liste_Regisseure;
}
Wobei Film mein assoziatives Array mit Unter-Arrays ist.
Gruß
Enrico