Ankündigung

Einklappen
Keine Ankündigung bisher.

Pagination Script

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Pagination Script

    Hallo,

    ich würde gerne eine Pagination auf meinen Seiten aufbauen wie es hier ist:
    https://www.js-tutorials.com/demos/j..._example_demo/

    Allerdings im Blog-Style, also mit Titel, Beschreibung, Bild(er) ...

    Mir ist wichtig das die Pagination auf einer Seite geladen wird, also wirklich nur auf der index.php steht und nicht eine URL zusammengebastelt wird auf der index.php#1, index,php#2 oder dergleichen steht.

    Die Teaserinformationen kommen nicht aus einer Datenbank, sondern ausschließlich aus den Files (statisch) selbst, die müssten sozusagen extrahiert werden.

    Alle Daten liegen im selben Ordner, auch die index.php und alle anderen statischen Files in denen die Teaser-Informationen vorhanden sind.

    Es soll wirklich nur etwas ganz einfaches werden - ohne Datenbankanbindung.


    Angebote bitte per PN!

  • #2
    Warum nutzt du nicht das Framework Bootstrap ?? Da ist die Funktion schon mit drine

    Kommentar


    • #3
      Zitat von Spanien16 Beitrag anzeigen
      Warum nutzt du nicht das Framework Bootstrap ?? Da ist die Funktion schon mit drine
      Du weisst aber schon, dass Bootstrap nur ein Tool ist für die Gestaltung einer Webseite bzw. deren Elemente, dass bedeuted das Bootstrap Clientseitig ausgeführt/verabeitet wird. Du musst aber dennoch Serverseitig die Anzahl bzw. den Inhalt der Dateien verabeiten um die Daten für die Pagination zu erhalten.

      Kommentar


      • #4
        Zitat von CPCoder Beitrag anzeigen

        Du weisst aber schon, dass Bootstrap nur ein Tool ist für die Gestaltung einer Webseite bzw. deren Elemente, dass bedeuted das Bootstrap Clientseitig ausgeführt/verabeitet wird. Du musst aber dennoch Serverseitig die Anzahl bzw. den Inhalt der Dateien verabeiten um die Daten für die Pagination zu erhalten.
        Das ist mir klar. Ich Arbeite schon eine weile mit Bootstrap. Abgesehen von den Inhalten erspart man sich durch solche Frameworks Arbeit weil die Funktion ja dort Erhalten ist

        Kommentar


        • #5
          Noch einmal zum mitschreiben...
          Bootstrap stellt nur Methoden und CSS Code zur Darstellung der Pagination zur Verfügung, nicht jedoch den logischen Code der auf Serverseite ausgeführt werden muss, um die Anzahl der Seiten als auch die aktuelle Seite auf der man sich befindet zu ermitteln!

          Dem TE geht es hier jedoch auch hauptsächlich um die Serverseitige Geschichte.

          ... Die Teaserinformationen kommen nicht aus einer Datenbank, sondern ausschließlich aus den Files (statisch) selbst, die müssten sozusagen extrahiert werden.
          Alle Daten liegen im selben Ordner, auch die index.php und alle anderen statischen Files in denen die Teaser-Informationen vorhanden sind.
          Es soll wirklich nur etwas ganz einfaches werden - ohne Datenbankanbindung.

          Kommentar


          • #6
            Hab mal ein wenig gekramt und ein Script gefunden, das du sehr leicht anpassen kannst.

            Es zeigt die Gegenüberstellung von GET, mit Parameter in der URL, und der Variante mit POST.
            Die Variante mit POST habe ich mal eben dazu geschrieben, weil das ja das ist, was du haben willst.

            Das Script sollte eigentlich selbsterklärend sein.
            Als Beispiel liefert es alle Dateien aus dem aktuellen Verzeichnis.
            Die Variante die du nicht brauchst löscht du einfach.

            PHP-Code:
            <?php

            $files 
            glob("*.*");    // Alle Dateien holen
            $total count($files);  // Arrayanzahl ermitteln

            // Ab hier beginnt die Funktionalität für die Blätteranzeige
            // Ausgangsbasis ist immer ein Array, hier: $files

            // Einige Vorbelegungen
            $items 10;     // Anzahl der Einheiten pro Seite
            $first 0;      // Startwert der ersten Seite
            $last  = ((int)($total/$items )) * $items;  // Startwert der letzten Seite
            $prev  0;      // vorherige Seite
            $activ 1;      // aktuelle Seite
            $next  $items// nächste Seite
            $start 0;      // Parameter, auf 0 falls Seite das erste mal aufgerufen wird

                // GET Version
                
            if ( isset($_GET['start']) ){
                    
            $start = (int)$_GET['start'];
                    if ( 
            $start >= $items && $start $last){
                        
            $prev $start $items;
                        
            $activ $start/$items +1;
                        
            $next $start $items;            
                    }
                    if ( 
            $start >= $last ){
                        
            $prev  $start-$items;
                        
            $activ $start/$items +;
                        
            $next  $last;
                    }
                }

                
            // POST Version
                
            if ( isset($_POST['start']) ){
                    
            $start = (int)$_POST['start'];
                    if ( 
            $start >= $items && $start $last){
                        
            $prev $start $items;
                        
            $activ $start/$items +1;
                        
            $next $start $items;            
                    }
                    if ( 
            $start >= $last ){
                        
            $prev  $start-$items;
                        
            $activ $start/$items +;
                        
            $next  $last;
                    }
                }

                
            $html_pagination_GET '<li><a href="' $_SERVER['SCRIPT_NAME'] . '">|&lt;&lt;</a>
                    <li><a href="' 
            $_SERVER['SCRIPT_NAME'] . '?start=' $prev '">&lt;</a>
                    <li>Seite: ' 
            $activ '
                    <li><a href="' 
            $_SERVER['SCRIPT_NAME'] . '?start=' $next '">&gt;</a>
                    <li><a href="' 
            $_SERVER['SCRIPT_NAME'] . '?start=' $last '">&gt;&gt;|</a>';

                
            $html_pagination_POST '<button type="submit" name="start" value="' $first '">|&lt;&lt;</button>
                    <button type="submit" name="start" value="' 
            $prev '">&lt;</button>
                    <span>Seite: ' 
            $activ '</span>
                    <button type="submit" name="start" value="' 
            $next '">&gt;</button>
                    <button type="submit" name="start" value="' 
            $last '">&gt;&gt;|</button>';

            // Anzeige zum Testen
            $outhtml '';
            for(
            $i $start$i <= ($start+$items); $i++){
                
            $outhtml .= $files[$i] . "<br>\n";
                if ( 
            $i === ($last+1) ) break;
            }

            ?>

            <!doctype html>
            <html lang="de">
            <head>
            <title>Mitgliederdatenbank</title>
            <meta charset="utf-8">
            <style>
                * { box-sizing: border-box; }
                html {}
                body {}
                .pagination {
                    display: inline-block;
                    padding-left: 0;
                    margin: 20px 0;
                    border-radius: 4px;
                }
                .pagination > li {
                    display: inline;
                }
                .pagination > li > a {
                    padding: 5px 10px;
                    font-size: 0.9rem;
                    line-height: 1.5;
                    color: #337ab7;
                    text-decoration: none;
                    background-color: #fff;
                    border: 1px solid #ddd;
                }

            </style>
            </head>
            <body>
                <h3>Dateien</h3>

                <!-- ab hier erfolgt die Testanzeige der Dateien -->
                <p>
                    <?= $outhtml?>
                </p>
                <!-- Ende -->

                <!-- Blättern anzeigen als GET -->
                <ul id="pagination" class="pagination">
                    <?= $html_pagination_GET?>  
                </ul>

                <!-- Blättern anzeigen als POST -->
                <form method="post">
                    <?= $html_pagination_POST?>    
                </form>  
            </body>
            </html>

            Kommentar


            • #7
              Zitat von protestix Beitrag anzeigen
              Hab mal ein wenig gekramt und ein Script gefunden, das du sehr leicht anpassen kannst.

              Es zeigt die Gegenüberstellung von GET, mit Parameter in der URL, und der Variante mit POST.
              Die Variante mit POST habe ich mal eben dazu geschrieben, weil das ja das ist, was du haben willst.

              Das Script sollte eigentlich selbsterklärend sein.
              Als Beispiel liefert es alle Dateien aus dem aktuellen Verzeichnis.
              Die Variante die du nicht brauchst löscht du einfach.

              PHP-Code:
              <?php

              $files 
              glob("*.*"); // Alle Dateien holen
              $total count($files); // Arrayanzahl ermitteln

              // Ab hier beginnt die Funktionalität für die Blätteranzeige
              // Ausgangsbasis ist immer ein Array, hier: $files

              // Einige Vorbelegungen
              $items 10// Anzahl der Einheiten pro Seite
              $first 0// Startwert der ersten Seite
              $last = ((int)($total/$items )) * $items// Startwert der letzten Seite
              $prev 0// vorherige Seite
              $activ 1// aktuelle Seite
              $next $items// nächste Seite
              $start 0// Parameter, auf 0 falls Seite das erste mal aufgerufen wird

              // GET Version
              if ( isset($_GET['start']) ){
              $start = (int)$_GET['start'];
              if ( 
              $start >= $items && $start $last){
              $prev $start $items;
              $activ $start/$items +1;
              $next $start $items;
              }
              if ( 
              $start >= $last ){
              $prev $start-$items;
              $activ $start/$items +;
              $next $last;
              }
              }

              // POST Version
              if ( isset($_POST['start']) ){
              $start = (int)$_POST['start'];
              if ( 
              $start >= $items && $start $last){
              $prev $start $items;
              $activ $start/$items +1;
              $next $start $items;
              }
              if ( 
              $start >= $last ){
              $prev $start-$items;
              $activ $start/$items +;
              $next $last;
              }
              }

              $html_pagination_GET '<li><a href="' $_SERVER['SCRIPT_NAME'] . '">|&lt;&lt;</a>
              <li><a href="' 
              $_SERVER['SCRIPT_NAME'] . '?start=' $prev '">&lt;</a>
              <li>Seite: ' 
              $activ '
              <li><a href="' 
              $_SERVER['SCRIPT_NAME'] . '?start=' $next '">&gt;</a>
              <li><a href="' 
              $_SERVER['SCRIPT_NAME'] . '?start=' $last '">&gt;&gt;|</a>';

              $html_pagination_POST '<button type="submit" name="start" value="' $first '">|&lt;&lt;</button>
              <button type="submit" name="start" value="' 
              $prev '">&lt;</button>
              <span>Seite: ' 
              $activ '</span>
              <button type="submit" name="start" value="' 
              $next '">&gt;</button>
              <button type="submit" name="start" value="' 
              $last '">&gt;&gt;|</button>';

              // Anzeige zum Testen
              $outhtml '';
              for(
              $i $start$i <= ($start+$items); $i++){
              $outhtml .= $files[$i] . "<br>\n";
              if ( 
              $i === ($last+1) ) break;
              }

              ?>

              <!doctype html>
              <html lang="de">
              <head>
              <title>Mitgliederdatenbank</title>
              <meta charset="utf-8">
              <style>
              * { box-sizing: border-box; }
              html {}
              body {}
              .pagination {
              display: inline-block;
              padding-left: 0;
              margin: 20px 0;
              border-radius: 4px;
              }
              .pagination > li {
              display: inline;
              }
              .pagination > li > a {
              padding: 5px 10px;
              font-size: 0.9rem;
              line-height: 1.5;
              color: #337ab7;
              text-decoration: none;
              background-color: #fff;
              border: 1px solid #ddd;
              }

              </style>
              </head>
              <body>
              <h3>Dateien</h3>

              <!-- ab hier erfolgt die Testanzeige der Dateien -->
              <p>
              <?= $outhtml?>
              </p>
              <!-- Ende -->

              <!-- Blättern anzeigen als GET -->
              <ul id="pagination" class="pagination">
              <?= $html_pagination_GET?>
              </ul>

              <!-- Blättern anzeigen als POST -->
              <form method="post">
              <?= $html_pagination_POST?>
              </form>
              </body>
              </html>
              Kleine Randbemerkung: Das ganze gibt immer ein Item zu viel zurück. Die Schleifenbedingung müsste echt kleiner sein.
              "Software is like Sex, it's best if it's free." - Linus Torvalds

              Kommentar

              Lädt...
              X