Parameterübergabe
Torremaster
- html
0 Götz0 Thomas Luethi0 torremaster
Wie kann ich beim Aufruf eines Links einen Parameter an die aufzurufende Datei übergeben?
Folgendes Problem:
Ich habe ca. 100 Fotos auf meiner Webseite mit Thumbnail-Vorschau. Beim Anklicken eines Thumbnails öffnet sich mit
<script language="JavaScript">
<!--
function WinOpen1()
{msg=open("foto01.htm",height=500,width=680)};
//-->
</script>
eine neue HTML-Datei foto01.htm mit dem großen Foto.
Nachteil: ich brauche soviele HTML-Dateien wie ich Fotos habe, also ca. 100, obwohl die Dateien bis auf den Dateinamen des Fotos und height und width identisch sind.
Ich möchte also lediglich die veränderbaren Parameter an eine einzige Datei übergeben, in der dann das große Bild angezeigt werden soll.
Wer weiß eine Lösung?
Torremaster
Hallo Torremaster!
Wie kann ich beim Aufruf eines Links einen Parameter an die aufzurufende Datei übergeben?
Grundsätzlich übergibt man Variablen am einfachsten per GET, also z.B. http://forum.de.selfhtml.org/?t=71021&m=408711.
Das übergibt die GET-Variable t mit dem Wert 71021 und die GET-Variable m mit dem Wert 408711 an ein Script auf dem Server.
Du willst aber, wenn ich Dich richtig verstanden habe, das ganze mit JS machen.
Das sollte auch gehen, schau Dir dazu vielleicht mal die beiden Feature Artikel zu diesem Thema an:
* Javascript-Wertübergabe zwischen verschiedenen HTML-Dokumenten von Hatto von Hatzfeld
http://aktuell.de.selfhtml.org/artikel/javascript/wertuebergabe/index.htm
* Wertübergabe zwischen Dokumenten - Teil 2 von Stefan Puff
http://aktuell.de.selfhtml.org/artikel/javascript/wertuebergabe-2/index.htm
MfG
Götz
Hallo,
Ich möchte also lediglich die veränderbaren Parameter an eine einzige Datei übergeben, in der dann das große Bild angezeigt werden soll.
Bitte verlinke die Thumbnails so, dass auch die Benutzer
ohne JavaScript an die grossen Bilder herankommen.
Wenn Du eine zuverlaessige Loesung willst, die bei allen
Benutzern funktioniert, und nicht 100 Dateien von Hand
machen willst, dann brauchst Du eine serverseitige
Skriptsprache (z.B. PHP oder Perl).
Dann kannst Du eine einzige Datei machen ("Vorlage", "Template"),
in der je nach uebergebenem Parameter eine andere Bild-URL
und evtl. ein anderer Kommentar unter dem Bild eingefuegt wird.
Beispiel in PHP:
$bild[1]="geburtstag.jpg";
$kommentar[1]="Ich an meinem 15. Geburtstag";
$bild[2]="katze.jpg";
$kommentar[2]="Meine Katze";
$zahl=intval($_GET['nr']);
echo '<img src="'.$bild[$zahl].'" alt="Foto"><br>";
echo $kommentar[$zahl];
Aufruf z.B. mit:
bildzeiger.php?nr=1
bildzeiger.php?nr=2
u.s.w.
Natuerlich laesst sich das ganze beliebig ausbauen mit
"Vorderes Bild", "Naechstes Bild" und "Uebersicht" Links u.s.w.
---
Wenn Du aus Faulheit und boeser Absicht den Benutzern
ohne JavaScript keine Chance geben willst, die grossen
Bilder zu sehen, dann kannst Du vermutlich auch mit
JavaScript etwas basteln...
Auch dort soll es moeglich sein, auf die URL bzw. den
Query-String zuzugreifen.
Davon rate ich aber stark ab.
Gruesse,
Thomas
Danke für die Tipps.
Ist doch wieder erschreckend, wie unflexibel HTML ist. Was hat man sich da beim W3C nur gedacht?
Da kopiere ich mir lieber fix 100 HTML-Dateien. Ist weniger aufwendig.
Trotzdem nochmals vielen Dank an Thomas und Götz für die schnelle Reaktion/Redaktion.
Torremaster