Esmy: per include dateien in 2 verschiedenen div-containern nachladen?

Hallo zusammen,

ich hab folgendes Anliegen und hoffe jemand kann mir helfen:

Ich lade innerhalb eines Div-Containers html-Seiten per include nach:

<?
switch($section){
case "einleitung": include("einleitung.html"); break;
case "wasauchimmer": include("wasauchimmer.html"); break;
default: include("einleitung.html"); break;
}
?>

und rufe einfach per Link über:<a href="index.php?section=einleitung" title="einleitung">

Funktioniert auch alles bestens. Nun habe ich aber am Rand einen zweiten DIV-Container, in dem sich Bilder befinden und ich würde gern, bei anklicken eines Links auch diese "neu laden". Also zu jedem link sowohl eine neue Seite als auch neue Bilder. Allerdings funktioniert ja ein Aufruf in der Art von: "index.php?section=einleitung&section=bilder" nicht.

Gibt es sonst eine Lösung beide Inhalte nachzuladen?

Vielen Dank schonmal
Esmy

  1. Hallo Esmy!

    Funktioniert auch alles bestens. Nun habe ich aber am Rand einen zweiten DIV-Container, in dem sich Bilder befinden und ich würde gern, bei anklicken eines Links auch diese "neu laden". Also zu jedem link sowohl eine neue Seite als auch neue Bilder. Allerdings funktioniert ja ein Aufruf in der Art von: "index.php?section=einleitung&section=bilder" nicht.

    Deine zweite Angabe von section führt dazu, dass die Zuweisung zur ersten überschrieben wird. Verwende zweierlei Übergaben im Querystring. Maskiere Deine Ampaersants. (& zu &amp;)

    Schönen Gruß

    Afra

    1. Deine zweite Angabe von section führt dazu, dass die Zuweisung zur ersten überschrieben wird. Verwende zweierlei Übergaben im Querystring. Maskiere Deine Ampaersants. (& zu &amp;)

      Schönen Gruß

      Afra

      Hallo Afra,

      ja, das ist naheliegend (manchmal sieht man den Wald vor lauter Bäumen nicht;)

      Hat bestens funktioniert. Danke
      Esmy

  2. Hallo,

    case "einleitung": include("einleitung.html"); break;
    case "wasauchimmer": include("wasauchimmer.html"); break;
    default: include("einleitung.html"); break;

    Dir ist bewusst, dass hier auch der PHP-Parser anspringt und PHP-Code der in den HTML Dateien enthalten ist interpretiert wird? So wie ich das sehe möchtest du das warscheinlich gar nicht und möchtest eher etwas wie das hier nutzen:

    case 'einleitung': echo [link:http://de.php.net/file_get_contents@title=file_get_contents]('einleitung.html');

    Funktioniert auch alles bestens. Nun habe ich aber am Rand einen zweiten DIV-Container, in dem sich Bilder befinden und ich würde gern, bei anklicken eines Links auch diese "neu laden". Also zu jedem link sowohl eine neue Seite als auch neue Bilder. Allerdings funktioniert ja ein Aufruf in der Art von: "index.php?section=einleitung&section=bilder" nicht.

    Dann musst du das einfach nur implementieren in etwa würde das ganze so aussehen:

    <html>  
    <head>  
     <title>Test</title>  
    </head>  
    <body>  
     <div id="content">  
    [code lang=php]  <?php  
       switch ($section) {  
        case 'einleitung': echo file_get_contents('einleitung.html'); break;  
        case 'foo': echo file_get_contents('foo.html'); break;  
        default: include("einleitung.html"); break;  
       }  
      ?>
    

    </div>
     <div id="bilder">

      <?php  
       switch ($section) {  
        case 'einleitung': echo file_get_contents('bilder-einleitung.html'); break;  
        case 'foo': echo file_get_contents('bilder-foo.html'); break;  
        default: include("bilder-einleitung.html"); break;  
      ?>
    

    </div>
    </body>
    </html>[/code]

    Grüße
    Jeena Paradies

    1. Hallo,

      case "einleitung": include("einleitung.html"); break;
      case "wasauchimmer": include("wasauchimmer.html"); break;
      default: include("einleitung.html"); break;
      Dir ist bewusst, dass hier auch der PHP-Parser anspringt und PHP-Code der in den HTML Dateien enthalten ist interpretiert wird? So wie ich das sehe möchtest du das warscheinlich gar nicht und möchtest eher etwas wie das hier nutzen:

      case 'einleitung': echo [link:http://de.php.net/file_get_contents@title=file_get_contents]('einleitung.html');

      Hallo Jeena
      ähm, du machst mich stutzig? Was ist schlecht daran, dass php-code in der html-Datei einfach geparst wird. (also ich hab die Datei halt einfach in .php statt .html umbenannt. Entstehen irgendwelche Nachteile dadurch? Der Seitenaufruf funktioniert ja im Moment so, wie ich das haben möchte (zumindest in Mozilla,Netscape und Explorer).

      Gruß
      Esmy

      1. Hallo,

        Ja readfile() wäre wohl noch sinnvoller wie Ashura anmerkte.

        ähm, du machst mich stutzig? Was ist schlecht daran, dass php-code in der html-Datei einfach geparst wird. (also ich hab die Datei halt einfach in .php statt .html umbenannt. Entstehen irgendwelche Nachteile dadurch? Der Seitenaufruf funktioniert ja im Moment so, wie ich das haben möchte (zumindest in Mozilla,Netscape und Explorer).

        Es geht eigentlich nur um die unnötigen resourcen, die verbraucht werden wenn der PHP-Parser auch noch unnötig auf die html seite angeworfen wird. Aber ja ich gebe zu, das hat wohl bei deinem Unterfangen eher Philosofische Natur, da man den Unterschied in der Geschwindigkeit mit bloßem Auge nicht sehen können wird. Bei größeren Projekten könnte das durchaus anders aussehen.

        Grüße
        Jeena Paradies

        1. Es geht eigentlich nur um die unnötigen resourcen, die verbraucht werden wenn der PHP-Parser auch noch unnötig auf die html seite angeworfen wird. Aber ja ich gebe zu, das hat wohl bei deinem Unterfangen eher Philosofische Natur, da man den Unterschied in der Geschwindigkeit mit bloßem Auge nicht sehen können wird. Bei größeren Projekten könnte das durchaus anders aussehen.

          Grüße
          Jeena Paradies

          phu, das beruhigt mich aber jetzt ungemein. Naja, dann behalte ich deine Lösung am besten im Hinterkopf, falls das Projekt mal astronomische Ausmaße annehmen sollte;)

          Danke und Gruß
          Esmy

    2. Hallo Jeena.

      case 'einleitung': echo [link:http://de.php.net/file_get_contents@title=file_get_contents]('einleitung.html');

      Warum nicht einfach readfile?

      Die besondere Eigenschaft von file_get_contents, lediglich die jeweilige Datei auszulesen aber nicht gleich auszugeben wird ja hier nicht genutzt.

      Einen schönen Mittwoch noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
      [HTML Design Constraints: Logical Markup]
      1. Hallo,

        Warum nicht einfach readfile?

        Hey meinst du ich kenne alle PHP Funktionen auswendig? ;-)

        Grüße
        Jeena Paradies

        1. Hallo Jeena.

          Warum nicht einfach readfile?
          Hey meinst du ich kenne alle PHP Funktionen auswendig? ;-)

          Natürlich. Oder bist du etwa nicht 1337?

          Einen schönen Mittwoch noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
          [HTML Design Constraints: Logical Markup]
          1. Hallo,

            Natürlich. Oder bist du etwa nicht 1337?

            *lol* ne nicht wenn es um PHP geht ;-).

            Grüße
            Jeena Paradies

  3. hi,

    Ich lade innerhalb eines Div-Containers html-Seiten per include nach

    Damit meinst du doch hoffentlich keine kompletten HTML-Dokumente, sondern höchstens Dokument-Fragmente?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hi,

      Ich lade innerhalb eines Div-Containers html-Seiten per include nach

      Damit meinst du doch hoffentlich keine kompletten HTML-Dokumente, sondern höchstens Dokument-Fragmente?

      gruß,
      wahsaga

      *hüstel* wie definierst du "komplette HTML-Dokumente"? Ich hab im Moment nur Text, den ich nachlade. Spiele aber mit dem Gedanken noch ein paar Bilder dazuzutun. Wäre das Frevel? ;)
      Hast du vielleicht eine andere Lösung, außer JS zu benutzen oder IFrames zu benutzen?

      Gruß
      Esmy

      1. hi,

        *hüstel* wie definierst du "komplette HTML-Dokumente"?

        DTD-Angabe, <html>, <head>, <body> etc. - ein komplettes, eigenständiges HTML-Dokument eben.

        Ich hab im Moment nur Text, den ich nachlade.

        Das ist OK.

        Spiele aber mit dem Gedanken noch ein paar Bilder dazuzutun. Wäre das Frevel? ;)

        Nein, wäre auch OK.

        Viele Anfänger machen nur gerne den Fehler, komplette Dokumente in andere per include o.ä. einzubinden - und dabei kommen dann Nonsense-Dokumente heraus, die alle in einem HTML-Dokument einmaligen Bestandteile mehrfach enthalten. Und da mir aus deiner Formulierung nicht ganz klar hervorging, ob du das so machst oder nicht, fragte ich nach.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }