Torremaster: Parameterübergabe

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

  1. 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

    --
    Losung und Lehrtext für Montag, 2. Februar 2004
    Ich aber will schauen dein Antlitz in Gerechtigkeit, ich will satt werden, wenn ich erwache, an deinem Bilde. (Psalm 17,15)
    Wir sehen jetzt durch einen Spiegel ein dunkles Bild; dann aber von Angesicht zu Angesicht. Jetzt erkenne ich stückweise; dann aber werde ich erkennen, wie ich erkannt bin. (1.Korinther 13,12)
    (http://www.losungen.de/heute.php3)
  2. 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

    --
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
    Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
  3. 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