awdp30: Einfache Seitennavigation in includiertem File

Hallo zusammen,

ich habe eine ganz schlichte Bildergalerie gebastelt. Es handelt sich hier bei um eine php seite (index.php) in die eine php seite zum bilder anzeigen included wird (content.php) und rechts daneben ist die navigation (navi.php) ebenfalls included in der index.php.

Wenn jetzt in der Navigation eine Bilderserie aufgerufen wird, ist diese unterteilt auf 10 Bilder (Beisp.: bilderserie1.php). Diese ist in der content.php included. Da ich jedoch zwei weitere Seiten mit jeweils 10 Bildern habe (bilderserie1b.php, bilderserie1c.php) möchte ich gerne dazwischen hin und her schalten können (also beispl. so: 1 | 2 | 3). Wenn ich das verlinke, öffnet sich diese neue php-Seite immer in einem neuen Fenster.

Da ich weiss, dass die Verlinkung von php-Seiten nicht gehandhabt werden kann wie bei html-Seiten (mittels target wie bei Frames) weiss ich nicht weiter. Nun möchte ich aber meine tagelange Laienentwicklung nicht komplett neu machen. Kann mir jemand einen kurzen, einfachen Rat geben, wie das gehen kann, ohne das man Experte sein muss? Vielleicht geht sowas ja auch mit Javascript?

Es wäre prima, wenn ihr mir helfen könntet.

Gruss

awdp30

  1. Hat denn niemand eine Lösung für mich? Ich komme wirklich nicht weiter.

    Danke im vorraus.

    1. Kann mir nicht bitte jemand helfen, ich bin nicht versiert was PHP angeht. Bitte schaut mal in meinen Beitrag von 18.09.2008, 17:31.

      Danke.

  2. Wenn jetzt in der Navigation eine Bilderserie aufgerufen wird, ist diese unterteilt auf 10 Bilder (Beisp.: bilderserie1.php). Diese ist in der content.php included. Da ich jedoch zwei weitere Seiten mit jeweils 10 Bildern habe (bilderserie1b.php, bilderserie1c.php) möchte ich gerne dazwischen hin und her schalten können (also beispl. so: 1 | 2 | 3). Wenn ich das verlinke, öffnet sich diese neue php-Seite immer in einem neuen Fenster.

    Du verlinkst auf "bilderseite1b.php"? Dann ist das Verhalten völlig korrekt.

    Nun möchte ich aber meine tagelange Laienentwicklung nicht komplett neu machen. Kann mir jemand einen kurzen, einfachen Rat geben, wie das gehen kann, ohne das man Experte sein muss?

    Aber sicher doch:

    <a href="index.php?modul=galerie&start=10">Bild 11 bis 20</a>

    Auszug aus index.php:

    if($_GET['modul'] == 'galerie') {  
      if(isset($_GET['start'] && is_numeric($_GET['start']) {  
        $start = $_GET['start'];  
      }  
      else {  
        $start = 0;  
      }  
      include('bildergalerie.php');  
    }
    

    bildergalerie.php:

    // $bilder_array enthält eine Liste aller Bilder  
    $limit = $start + 10;  
    $count = count($bilder_array);  
    if($limit > $count) {  
      $limit = $count;  
    }  
    for ($i = $start; $i < $limit; $i++) {  
      echo "<img src='$bild_array[$i]'>\n";  
    }
    

    Zur Erklärung:

    Du musst für jeden Teil der Galerie die Haupseite index.php neu aufrufen. Diese muss dann den entsprechenden Teil der Galerie einbinden und die neue Seite zurückgeben.

    Zu diesem Zweck müsstest Du der index.php mitteilen, dass es sich um die Galerie zu kümmern hat ('modul=galerie') und mit welchem Bild es anfangen soll ('start=10'). Die index.php wertet das aus und includet das Galerie-Script.

    Dort wird einfach bei dem gewünschten Startbild begonnen und die nächsten 10 angezeigt, falls weniger als 10 Bilder übrig sind, dann halt nur der Rest. Das hat den entscheidenden Vorteil, dass es Dir völlig schnuppe sein kann, ob in der Galerie 30, 42 oder 1267 Bilder drin sind, denn das Galeriescript erledigt das für Dich. So, wie Du es momentan hast, müsstest Du alle 10 Bilder ein neues PHP-Script schreiben.

    Vielleicht geht sowas ja auch mit Javascript?

    Könnte, aber muss nicht.

    Siechfred

    --
    Obacht, hinter jedem noch so kleinen Busch könnte ein Indianer sitzen!
    1. Hallo, vielen Dank erstmal für die ausführliche Hilfestellung. Wahrscheinlich hab ich es zu kompliziert erklärt, bzw. beschrieben. Die Seiten bildergalerie1.php, bildergalerie2.php und bildergalerie3.php sind in die index.php includiert. Also ich meine wenn man die index.php aufruft, erscheint die bildergalerie1.php (da sind nur 10 kleine Bildchen drin). Nun ist darunter die Navigation 1 | 2 | 3. Klicke ich auf die "2" soll bilderserie2.php aufgerufen werden usw.

      Es soll lediglich nur zwischen den drei php seiten hin und her geschaltet werden. Das wars eigentlich. Bilder müssen nicht erst geholt werden, die sind schon in den jeweiligen php-Seiten.

      Gibt es da nicht eine kurze, einfache Anweisung?

      1. Gibt es da nicht eine kurze, einfache Anweisung?

        Nein.

        Siechfred

        --
        Obacht, hinter jedem noch so kleinen Busch könnte ein Indianer sitzen!
        1. Gibt es da nicht eine kurze, einfache Anweisung?

          Nein.

          Siechfred

          Das ist so typisch für SiechASSIfried... Was für ein toller Hecht du doch bist.

          1. Das ist so typisch für SiechASSIfried

            Habe ich auch lange drauf hingearbeitet.

            Was für ein toller Hecht du doch bist.

            Ja, gelle? Schön, dass es endlich mal jemand merkt.

            Siechfred

            --
            Obacht, hinter jedem noch so kleinen Busch könnte ein Indianer sitzen!
    2. Auszug aus index.php:

      if($_GET['modul'] == 'galerie') {

      if(isset($_GET['start'] && is_numeric($_GET['start']) {
          $start = $_GET['start'];
        }
        else {
          $start = 0;
        }
        include('bildergalerie.php');
      }

        
      Soweit ist mir das klar. Aber das Script MUSS mir keine BIlder holen oder anzeigen, die sind schon auf den drei Seiten.  
        
      
      > bildergalerie.php:  
      >   
      > ~~~php
      
      // $bilder_array enthält eine Liste aller Bilder  
      
      > $limit = $start + 10;  
      > $count = count($bilder_array);  
      > if($limit > $count) {  
      >   $limit = $count;  
      > }  
      > for ($i = $start; $i < $limit; $i++) {  
      >   echo "<img src='$bild_array[$i]'>\n";  
      > }
      
      

      Entfällt bei mir da die Bilder nicht geholt und angezeigt werden müssen.

      Zur Erklärung:

      Du musst für jeden Teil der Galerie die Haupseite index.php neu aufrufen. Diese muss dann den entsprechenden Teil der Galerie einbinden und die neue Seite zurückgeben.

      Zu diesem Zweck müsstest Du der index.php mitteilen, dass es sich um die Galerie zu kümmern hat ('modul=galerie') und mit welchem Bild es anfangen soll ('start=10'). Die index.php wertet das aus und includet das Galerie-Script.

      Wie oben genannt

      Dort wird einfach bei dem gewünschten Startbild begonnen und die nächsten 10 angezeigt, falls weniger als 10 Bilder übrig sind, dann halt nur der Rest. Das hat den entscheidenden Vorteil, dass es Dir völlig schnuppe sein kann, ob in der Galerie 30, 42 oder 1267 Bilder drin sind, denn das Galeriescript erledigt das für Dich. So, wie Du es momentan hast, müsstest Du alle 10 Bilder ein neues PHP-Script schreiben.

      Entfällt ja. Ich benötige nur ein hin und herschalten zwischen den drei php-Seiten.

      1. Soweit ist mir das klar.

        Schön, denn dann sollte das hier:

        Ich benötige nur ein hin und herschalten zwischen den drei php-Seiten.

        nun wirklich kein Problem sein. Es ist doch wurscht, was Du als Parameter an das Script übergibst, solange es was damit anfangen kann. Der Aufruf könnte z.B. auch so aussehen:

        <a href="index.php?galerie=2">2. Galerieseite</a>

        Dann musst Du nur noch in index.php wie gezeigt den GET-Parameter holen, überprüfen, und - sofern 1, 2 oder 3 - die entsprechende Galerieseite einbinden.

        Siechfred

        --
        Obacht, hinter jedem noch so kleinen Busch könnte ein Indianer sitzen!