loreleyschiffer: SSI - Teile auf der Seite per Klick laden - SSI-Grenzen

Hallo ihr Wissenden!

Wo liegen eigentlich die Grenzen von SSI?
Also ich wollte ein Menü in eine Seite einbauen und je nachdem auf welchem Link man in der Liste  klickt, öffnet sich ein Player mit einem anderen Film in immer demselben Rahmen direkt auf der Hauptseite.

Frames wollte ich nicht verwenden. Mit Javascript hat es zwar funktioniert, aber meine Tests mit verschiedenen Browsern ergaben, dass es nicht in jedem Browser geladen werden konnte.

Mit php funktioniert es wohl auch. Aber ich frage mich, ob das nicht auch mit SSI hätte klappen können?
Es gibt im Net zwar Anweisungen wie man ein ausgelagertes Menü per SSI einbindet. Aber wenn ich dann dort auf einen Link klicke, geht nur eine neue Seite auf, der externe Inhalt wird nicht in den Rahmen der Hauptseite geladen, bzw. alle Inhalte sind sofort da und Erscheinen oder Verschwinden nicht erst nach dem Auswahlklick.

Ich werde mich jetzt wohl für eine php-Lösung entscheiden. Mich interessiert aber dennoch, ob Server Side Include dafür gereicht hätte.

Uli

  1. Hallo loreleyschiffer!

    Ich werde mich jetzt wohl für eine php-Lösung entscheiden. Mich interessiert aber dennoch, ob Server Side Include dafür gereicht hätte.

    Wie der Name schon sagt, haben _Server Side_ Includes nichts mit dem gemeinsam, was im Browser passiert/passieren soll. Wenn Deine Versuche zu keinem Ergebnis geführt haben, dann hast Du irgendwas falsch gemacht, evtl.:

    Mit Javascript hat es zwar funktioniert, aber meine Tests mit verschiedenen Browsern ergaben, dass es nicht in jedem Browser geladen werden konnte.

    lag es daran.

    SSI »inkludiert« lediglich Deine ausgelagerten Inhalte (ob reinen Text, HTML-Code, Ausgabe aus einem serverseitigen Script o.Ä.) in Deine Webseite. Mehr nicht. Und SSI hat nichts mit irgendeinem Browser zu tun, weil wie gesagt... serverseitige Technik.

    Viele Grüße aus Frankfurt/Main,
    Patrick

    --

    _ - jenseits vom delirium - _
    [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
    Nichts ist unmöglich? Doch!
    Heute schon gegökt?
    1. hallo Patrick,

      SSI »inkludiert« lediglich Deine ausgelagerten Inhalte (ob reinen Text, HTML-Code, Ausgabe aus einem serverseitigen Script o.Ä.) in Deine Webseite. Mehr nicht. Und SSI hat nichts mit irgendeinem Browser zu tun, weil wie gesagt... serverseitige Technik.

      Gut gesagt. Das trifft aber vergleichbar auch auf PHP zu (das allerdings deutlich mehr als bloß "inkludieren" kann). Mich würde interessieren, welche SSI-Lösung bisher probiert wurde, also der zugehörige Code. Was ich im OP lese, "sollte" sich tatsächlich auch mit SSI lösen lassen.

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
      1. Hi,

        fuer mich klingt das, was gewuenscht ist, nach Ajax. Es scheint nicht gewollt zu sein eine neue Seite zu laden, sondern nur Content zu tauschen/nachzuladen. Das, wo Frames einem die Illusion geben, das zu machen. Dabei hilft aber SSI dirket genausowenig wie php...

        1. Hallo Steel!

          fuer mich __klingt das__, was gewuenscht ist, nach Ajax. __Es scheint__ nicht gewollt zu sein eine neue Seite zu laden, sondern nur Content zu tauschen/nachzuladen. Das, wo Frames einem die Illusion geben, das zu machen. Dabei hilft aber SSI dirket genausowenig wie php...

          Wobei wir wieder beim Hauptproblem wären: Mangelnde Problembeschreibung... je nach Sauberkeit der Glaskugel (meine habe putze ich übrigens immer mit Ajax), sieht jeder von uns etwas anderes ;)

          Viele Grüße aus Frankfurt/Main,
          Patrick

          --

          _ - jenseits vom delirium - _
          [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
          Nichts ist unmöglich? Doch!
          Heute schon gegökt?
          1. Daran wirds liegen! Ich hab gar keine. Ich mach das immer mit Telepathie. Aber seit einiger Zeit klappt das nicht mehr gut...

          2. Hallo Patrick!

            fuer mich __klingt das__, was gewuenscht ist, nach Ajax. __Es scheint__ nicht gewollt zu sein eine neue Seite zu laden, sondern nur Content zu tauschen/nachzuladen. Das, wo Frames einem die Illusion geben, das zu machen. Dabei hilft aber SSI dirket genausowenig wie php...

            Wobei wir wieder beim Hauptproblem wären: Mangelnde Problembeschreibung... je nach Sauberkeit der Glaskugel (meine habe putze ich übrigens immer mit Ajax), sieht jeder von uns etwas anderes ;)

            Wäre schön wenn ich eine Glaskugel hätte. Dann könnte ich in die Zukunft schauen ob es sich gelohnt hat an dem Problem weiter zu arbeiten.

            Ajax-Code hatte ich ausprobiert:
            http://www.dynamicdrive.com/dynamicindex17/ajaxcontent.htm

            -------------------------------------------------------------------
            ...
            <!--
            var rootdomain="http://"+window.location.hostname
            function ajaxpage(url, containerid){
            var page_request = false
            if (window.XMLHttpRequest) // if Mozilla, Safari etc
            page_request = new XMLHttpRequest()
            else if (window.ActiveXObject){ // if IE
            try {
            page_request = new ActiveXObject("Msxml2.XMLHTTP")
            } catch (e){
            try{
            page_request = new ActiveXObject("Microsoft.XMLHTTP")
            }
            catch (e){}
            }
            }
            else
            return false
            page_request.onreadystatechange=function(){
            loadpage(page_request, containerid)
            }
            page_request.open('GET', url, true)
            page_request.send(null)
            }
            function loadpage(page_request, containerid){
            if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
            document.getElementById(containerid).innerHTML=page_request.responseText
            }
              </script>
            ...
            <div id="navicolumn">

            <a href="javascript:ajaxpage('slideshows/movie384s.html', 'filmcolumn');">Short
            Slideshow </a>
            <a href="javascript:ajaxpage('slideshows/movie384l.html', 'filmcolumn');">Long
            Slideshow </a>
            <a href="javascript:ajaxpage('slideshows/movie384so.html', 'filmcolumn');">Short
            Slideshow - opposite
            </a>
            ... usw.

            ----------------------------------------------------------------------

            Dieser Code soll für FF1+ IE5+  und Opr8+ geschrieben sein.
            Mit dem Firefox 2 gab es keine Probleme wohl aber z.B im IE 6, obwohl das ja eigentlich nicht sein dürfte.

            Eine rein serverseitige Lösung wäre mir eigentlich auch lieber. Die Homepage ist so speziell, dass mit einer Überlastung des Servers nicht zu rechnen ist.

            Ich hatte da an den "include"-Befehl gedacht. Den gibt es sowohl für SSI und PHP. Nur wie "includiere" ich über ein Menü? Ich will schliesslich nicht alle Filme gleichzeitig laden.

            Vielleicht geht das wirklich nicht und ich muss jedem Film seine eigene Seite verpassen. Dieses "include" hat mich wohl zu falschen Vorstellungen getrieben.

            Gruss v. Uli

            1. Hi,

              ookaaay... Du schreibst So als wuerdest Du versuchen in ein bestehendes Dokument zu includieren. Das bringt nicht nur die Leute hier durcheinander sondern geht natuerlich auch gar nicht. Dazu musst Du schon Ajax Technologie verwenden. Ich kann dein Beispiel grad nicht nachvollziehen aber generell funktioniert das schon. Ein Link zu einer Testseite waere da hilfreich.

              Includes funktionieren natuerlich. Aber Du musst das Dokument schon neu laden. Bei dem was Du vorhast wuerde sich php anbieten. Aber da ist ein Include nichtmal noetig. Eine einfache IF Bedingung oder n switch, was nun in dem Container angezeigt werden soll, tuts da doch schon. Da musst Du deinen Links nur nen Get-Parameter mitgeben.

              Beispiel mit einer einzigen Datei (index.html):
              Menue
              <a href="index.html?id=short"Short
              Slideshow </a>
              <a href="index.html?id=long">Long
              Slideshow </a>

              Contentbereich
              <div id="filmcolumn">
              ?>
              if (id == "short") then echo("Code fuer kurzes Video");
              if (id == "long") then echo("Code fuerlanges Video");
              <?php
              </div>

              Das ist natuerlich nur nen Schema, aber so wird's gemacht, wenn man kein Ajax benutzen kann/mag. Der Server schickt dann ein HTML Dokument an den Browser der sich die dort angegebenen Ressourcen holt und der User bekommt seine Videos one dass es fuer alles eine Seite geben muesste.

              1. Hallo Steel!

                Das ist natuerlich nur nen Schema, aber so wird's gemacht, wenn man kein Ajax benutzen kann/mag. Der Server schickt dann ein HTML Dokument an den Browser der sich die dort angegebenen Ressourcen holt und der User bekommt seine Videos one dass es fuer alles eine Seite geben muesste.

                Danke noch für Deine Antwort!

                Auf http://www.homepage-faqs.de/index.php?site=anleitung-php-menue habe ich eine ausführliche Beschreibung von einem ähnlichen Code (zweite Variante) gefunden und meine Dateien eingefügt:
                -------------------------------------------------------------------------
                <?php

                if (isset($_GET['go']))
                    {
                        switch($_GET['go'])
                        {

                case 'film1':    include('slideshows/movie384s.html');
                                            break;

                case 'film2':  include('slideshows/movie384l.html');
                                            break;

                case 'film3':    include('slideshows/movie384so.html');
                                            break;

                case 'film4':  include('slideshows/movie576s.html');
                                            break;

                default:        include('slideshows/movies-sm/movie384s.html');
                        }
                    }
                    else
                    {
                        include('slideshows/movie384s.html');
                    }

                ...

                ?>
                <a href="index.php?go=film1">Short Slideshow</a>
                <a href="index.php?go=film2">Long Slideshow</a>
                <a href="index.php?go=film3">Short Slideshow - opposite</a>
                <a href="index.php?go=film4">Short Slideshow</a>
                ----------------------------------------------------------------------
                Hat auf meinem Testserver gut funktioniert. :-)
                Als Anfänger was serverseitige Programmierung betrifft hatte ich mich auf SSI gestürzt weil mir das vermeintlich leichter erschien.
                Aber dieser php-Code lässt sich auch leicht überblicken.

                Grüsse von Uli