Felix Riesterer: Inhalt laden ohne "Reload" - welche Möglichkeiten gibt es?

Beitrag lesen

Lieber malte,

jetzt hab ich was für Dich!

Benenne alle inhaltlichen Seiten um in *.html! Das ist wichtig! Aus diesen HTML-Dateien werden von Deiner main.php alle weiteren HTML-Inhalte eingelesen, wenn der User Javascript deaktiviert, oder nicht verfügbar hat. Der Code in Deiner main.php hierzu ist folgender:

  
...<div id="content-layer">  
<?php  
// Dynamischen Seiteninhalt zusammenstellen  
  
// prüfen, ob angeforderte Inhalte existieren  
   include('config.php');  
   $einzubinden = "start.html";  
   if(isset($_GET['content']) && isset($seiten[$_GET['content']]))  
      {  
      $einzubinden = $seiten[$_GET['content']];  
      if(!file_exists($einzubinden)) $einzubinden = "error.html";  
      }  
  
// Inhalte einbinden  
   $datei = implode("", file($einzubinden)); // einzubindenede HTML-Datei einlesen  
  
   // alles zwischen <div id="content> und </div></body> herausschneiden  
   // es dürfen in der einzubindenden HTML-Datei zwischen dem letzten </div> und dem schließenden </body>  
   // keine weiteren Zeichen mehr stehen, die etwas anderes als Tabs, Leerzeichen oder Zeilenumbrüche sind!  
   $content_html = preg_replace('/(?is)^.*<div[^>]*id="content">(.*)<\/div>[ \r\n\t]*<\/body>.*$/', "\\1", $datei);  
  
   // so, und jetzt den HTML-Code des Contents ausgeben  
   echo $content_html;  
  
?>  
</div>...

Es hat sich in Deiner Javscript-Datei ein Fehler eingeschlichen! Wenn Du eine Variable in Javascript benennen willst, dann ist das Minuszeichen als Bestandteil des Namens verboten! Nimm den Unterstrich! Ebenfalls gemeckert hat meine Javascript-Konsole bei dem Kommentar nach dem Punkt bei
&& document.getElementsByTagName('main')[0]. /* ??? */ )
Mach den letzten Punkt vor dem Kommentar weg, dann stört es nimmer. Diese Funktion kommt ja erst noch...

Um das Javascript kümmern wir uns beim nächsten Mal. Sorge zuerst dafür, dass Deine Seite komplett _ohne_ Javascript funktioniert! Nutze Dein PHP dafür, wie oben beschrieben!

Liebe Grüße aus Ellwangen,

Felix Riesterer.