Felix Riesterer: Innerhalb von php-while-schleife datensatz mit javascritp

Beitrag lesen

Lieber Simon P.,

immer wieder nachschauen, wie die Logik des jeweiligen Programmablaufs beschaffen ist... ja, das ist anstrengend. Für Anfänger mögen Flussdiagramme manchmal helfen, um den Ablauf besser zu verdeutlichen.

Wir hatten doch schon eine Vorrichtung in index.php eingebaut, die Zusatzscripte inkludiert - und zwar alle(!), damit diese wiederum selbst entscheiden können, inwiefern sie nun aktiv werden und was sie dann tun wollen.

Ein solches Zusatzscript beginnt nach oben verlinktem Schema mit einer if-Anweisung, in der geprüft wird, ob das Script auf die richtige Seite hin reagiert:

<?php  
  
// we react to "?p=serien" in the URL  
if (array_key_exists('p', $_GET) && 'p' == 'serien') {

Natürlich kannst Du auch für andere Seiten Scripts entwickeln, die dann dort besondere Funktionalitäten umsetzen.

PS: z.B. das:

<?php

echo date("d.m.Y, H:i:s", filemtime("animes.html"));
?>

  
Ich gehe jetzt davon aus, dass Du gerade nicht für \_jede\_ Seite ein solches Datum ausgeben willst. Wolltest Du das doch, könntest Du in Deinem Template einen passenden Platzhalter einsetzen (z.B. {$mtime}) und mit folgendem Code befüllen:  
  
~~~php
// put it all together  
$tmp = str_replace(  
    array('{$contents}', '{$news}', '{$mtime}'),  
    array(  
        $contents,  
        $news,  
        date('d.m.Y, H:i:s', filemtime('./pages/'.$pages[$_GET['p']])  
    ),  
    $tmp  
);

Das führt aber zu einem Fehlerfall, wenn der p-Parameter in der URL einen fremden Schlüssel enthält. Bei einem Aufruf mit "?p=unsinn" würde $_GET['p'] den Wert "unsinn" haben und bei filemtime() im Array $pages einen Schlüssel "unsinn" voraussetzen, den es aber nicht gibt. Daher schlage ich folgende Verbesserung an der index.php vor:

<?php  
  
// list of pages  
$pages = array(  
    'contact' => 'contact.html',  
    'home'    => 'home.html'  
    //... weitere Seiten?  
);  
  
$p = 'home'; // default page  
  
// specific page requested?  
if (array_key_exists('p', $_GET)  
    // do we have such a page?  
    && array_key_exists($_GET['p'], $pages)  
) {  
    $p = $_GET['p'];  
}  
  
// load page contents  
$contents = file_get_contents('./pages/'.$pages[$p]);  
  
// get template  
$tmp = file_get_contents('./pages/template.html');  
  
// get news  
$news = file_get_contents('./pages/news.html');  
  
// put it all together  
$tmp = str_replace(  
    array('{$contents}', '{$news}', '{$mtime}'),  
    array(  
        $contents,  
        $news,  
        date(  
            'd.m.Y, H:i:s',  
            filemtime('./pages/'.$pages[$p]  
        )  
    ),  
    $tmp  
);  
  
// include additional scripts  
include 'serien.php'; // for ?p=serien  
  
// send everything to the browser  
echo $tmp;  
  
?>

Angenommen, Du willst nur von einer speziellen Seite das Datum angeben. Dann ist das bestimmt wieder ein Fall für ein spezialisiertes Zusatzscript. Du hattest etwas von "animes.html" geschrieben. Dann erstelle doch ein PHP-Script "animes.php", welches Du in index.php ebenfalls includierst:

// include additional scripts  
include 'animes.php'; // for ?p=animes  
include 'serien.php'; // for ?p=serien

In "animes.php" gehst Du dann analog zu "serien.php" vor:

<?php  
  
// we react to "?p=animes" in the URL  
if (array_key_exists('p', $_GET) && 'p' == 'animes') {  
    // do something here  
}  
  
?>

Sollte also der Platzhalter "{$mtime}" nur in der HTML-Datei "animes.html" stehen (und nicht im Template in "template.html"), dann könnte dieses spezialisierte Zusatzscript diesen mit dem passenden Datum ersetzen:

<?php  
  
// we react to "?p=animes" in the URL  
if (array_key_exists('p', $_GET) && 'p' == 'animes') {  
    $tmp = str_replace(  
        '{$mtime}',  
        date(  
            'd.m.Y, H:i:s',  
            filemtime('./pages/animes.html')  
        ),  
        $tmp  
    );  
}  
  
?>

Da str_replace() keine Veränderungen vornimmt, wenn es das zu Ersetzende nicht findet, wäre die "generelle" Datumslösung weiter oben (mit {$mtime} in "template.html") vielleicht sinnvoller.

Liebe Grüße,

Felix Riesterer.

--
"Wäre die EU ein Staat, der die Aufnahme in die EU beantragen würde, müsste der Antrag zurückgewiesen werden - aus Mangel an demokratischer Substanz." (Martin Schulz, Präsident des EU-Parlamentes)
0 78

Innerhalb von php-while-schleife datensatz mit javascritp

Simon P.
  • datenbank
  1. 0
    Felix Riesterer
    1. 0
      Simon P.
      1. 0
        Simon P.
        1. 0
          Felix Riesterer
          1. 0
            Simon P.
            1. 0
              Felix Riesterer
              1. 0
                Simon P.
                1. 0
                  Felix Riesterer
                  1. 0
                    Simon P.
                    1. 0
                      Felix Riesterer
                      1. 0
                        Simon P.
                        1. 0
                          Felix Riesterer
                          1. 0
                            Simon P.
                            1. 0
                              Simon P.
                              1. 0
                                Felix Riesterer
                                1. 0
                                  Simon P.
                                  1. 0
                                    Felix Riesterer
                                    1. 0
                                      Simon P.
                                      1. 0
                                        Simon P.
                                        1. 0
                                          Auge
                                          1. 0
                                            Simon P.
                                            1. 0
                                              Felix Riesterer
                                              1. 0
                                                Simon P.
                                            2. 0
                                              Martin_Online
                                              1. 0
                                                Felix Riesterer
                                                1. 0
                                                  Martin_Online
                                                  1. 0
                                                    M.
                                                    1. 0
                                                      Simon P.
                                            3. 0
                                              M.
                                        2. 0
                                          Felix Riesterer
                                          1. 0
                                            Simon P.
                                            1. 0
                                              Felix Riesterer
                                              1. 0
                                                Simon P.
                                                1. 0
                                                  Felix Riesterer
                                                  1. 0
                                                    Simon P.
                                                    1. 0
                                                      Simon P.
                                                    2. 0
                                                      Felix Riesterer
                                                      1. 0
                                                        Simon P.
                                                        1. 0
                                                          Felix Riesterer
                                                          1. 0
                                                            Simon P.
                                                            1. 0
                                                              Felix Riesterer
                                                              1. 0
                                                                Simon P.
                                                                1. 0
                                                                  Simon P.
                                                                  1. 0
                                                                    Felix Riesterer
                                                                    1. 0
                                                                      Simon P.
                                                                      1. 0
                                                                        Simon P.
                                                                        1. 0

                                                                          HTML5-Semantik

                                                                          Felix Riesterer
                                                                          • html
                                                                          1. 0
                                                                            Simon P.
                                                                            1. 0
                                                                              Felix Riesterer
                                                                              1. 0
                                                                                Simon P.
                                                                                1. 0
                                                                                  Felix Riesterer
                                                                                  1. 0
                                                                                    Simon P.
                                                                                    1. 0
                                                                                      Felix Riesterer
                                                                                      1. 0
                                                                                        Simon P.
                                                                                        1. 0
                                                                                          Simon P.
                2. 0
                  Simon P.
                  1. 1
                    Felix Riesterer
                    1. 0
                      Simon P.
                      1. 0
                        M.
                        1. 0
                          Matthias Apsel
                          1. 0
                            M.
                            1. 0
                              molily
                              1. 0
                                M.
                      2. 0
                        Felix Riesterer
                        1. 0
                          Simon P.
                          1. 0

                            Begriff Webseite

                            Tabellenkalk
                            • projektverwaltung
                            1. 0
                              Simon P.
                              1. 0
                                Gunnar Bittersmann
                          2. 0
                            Auge
      2. 0
        Felix Riesterer
        1. 1
          Matthias Apsel
          1. 0
            Felix Riesterer
            1. 0

              Browserverlauf bei seiteninternen Verweisen löschen

              Matthias Apsel
              • selfhtml-wiki
              1. 0
                Felix Riesterer
                1. 0
                  molily
              2. 0
                molily
  2. 0
    ChrisB