Bilddarstellung über Listen?
Daniel Siegle
- javascript
0 Calocybe
Hallo Ihr Wissenden,
gibt es eigentlich eine Möglichkeit, eine Artikelbeschreibung mit Bild, Preis, Texte etc über eine Liste zu verwalten und diese dann bei Usereingaben anzuzeigen?
Die Frage geht dahin. Angenommen, es gibt 20 Seiten mit jeweils einer Artikelbeschreibung. In dieser Beschreibung (pro Artikel eben eine HTML-Seite) wird das Bild des Artikel/Gegenstand angezeigt nebst Artikelbeschreibung, Preis in DM etc. Es soll dann über eine Art Übersicht ein Bild angeklickt werden, welches einen bestimmten Eintrag in einer Liste aktiviert und diese angaben von einer einzelnen Seite dargestellt werden sollen. Aus der Liste soll die Seite den Link für das Bild, den Text, den Preis und evtl andere Angaben lesen und für den User darstellen.
Eine Euroumrechnung auf der Seite dürfte mit JavaScript denke ich kein Problem sein.
Nur wie könnte man eben die Darstellung wie vorausgehend beschrieben ermöglichen?
Die Angaben der einzelnen Artikel sollten in einer CAV-Datei stehen, da dieses Format denke ich universell ist.
Für Eure Tipps wäre ich sehr dankbar, ich bin leider noch nicht auf eine Lösung oder Lösungsansatz gekommen.
Gruß
Daniel Siegle
Hallo Daniel!
Die Frage geht dahin. Angenommen, es gibt 20 Seiten mit jeweils einer Artikelbeschreibung. In dieser Beschreibung (pro Artikel eben eine HTML-Seite) wird das Bild des Artikel/Gegenstand angezeigt nebst Artikelbeschreibung, Preis in DM etc.
Nur wie könnte man eben die Darstellung wie vorausgehend beschrieben ermöglichen?
Ok, also erstmal wuerde man so eine Datenstruktur in eine externe Datei packen, um sie besser pflegen zu koennen. Dort definierst Du ein (leeres) Array, dass saemtliche Artikel aufnimmt, z.B.
artikel = [];
Jetzt musst Du Dich entscheiden, ob Du all diese Artikel ueber einen unique name ansprechen willst, oder einfach ueber einen Index. Im ersteren Fall schreibst Du fuer jeden Artikel ein Statement wie folgendes:
artikel["artikel1"] = {
name: "Artikel 1",
dm_preis: 3.98,
bild_url: "/images/artikel1.gif",
beschreibung: "Kurze Beschreibung von dem Ding,<BR>Zeilenumbrueche, wie man sie in HTML eben macht."
};
Willst Du stattdessen nur ueber einen Index drauf zugreifen, kannst Du sie automatisch durchnumerieren lassen:
artikel[artikel.length] = {
name: "Artikel 1",
dm_preis: 3.98,
bild_url: "/images/artikel1.gif",
beschreibung: "Kurze Beschreibung von dem Ding,<BR>Zeilenumbrueche, wie man sie in HTML eben macht."
};
(Mit artikel.length stellst Du jeweils die aktuelle Laenge des Arrays fest - und das gibt Dir den naechsten, noch nicht benutzten Index. Durch die Zuweisung wird das Array automatisch um 1 Element vergroessert.)
Du kannst nun folgendermassen auf die einzelnen Teile zugreifen:
Im ersten Fall (mit Namen):
alert(artikel["artikel1"]["name"]); // beide Varianten sind gleichbedeutend
alert(artikel.artikel1.dm_preis);
Im zweiten Fall (ueber Indizes):
alert(artikel[0]["name"]); // wiederum gleichbedeutend
alert(artikel[0].dm_preis);
Da in JS Objekte und Arrays prinzipiell dasselbe sind, kannst Du entweder die Array-Schreibweise (mit []) oder die Punktschreibweise waehlen.
Du kannst auch einen gesamten Artikel als Objekt an eine Funktion uebergeben:
function tu_was(art) {
alert(art.name + " kostet + " + art.dm_preis + " DM.");
}
tu_was(artikel[0]);
Eine Euroumrechnung auf der Seite dürfte mit JavaScript denke ich kein Problem sein.
DM = EURO * 1.95583;
EURO = DM / 1.95583;
Die Angaben der einzelnen Artikel sollten in einer CAV-Datei stehen, da dieses Format denke ich universell ist.
Du meinst sicher in einer CSV-Datei? Leider kannst Du mit JavaScript keine Dateien lesen. Du musst also die Daten in einer echten JS-Datei ablegen, wie oben beschrieben. Du kannst aber z.B. mit Perl ganz einfach aus der CSV-Datei eine entsprechende JS-Datei generieren lassen. Genau dafuer ist Perl ja da! Falls Du Perl benutzen kannst (ich meine offline, nicht als CGI) und Du weisst nicht, wie Du das Generieren machen sollst, sag Bescheid.
Calocybe