• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage zu div Container

Johnny990

Neues Mitglied
Hallo zusammen...
Hab gerade einen Blackout und weiss nicht wie ich weitermachen soll...
(Prrgrammiere eine Umfrage in PHP)
Ich habe dabei eine index.php die so aufgebaut ist:

Code:
<?php
//Einstiegsdatei
require_once('./includes/engine.inc.php');
?>

Dabei lädt die engine.inc.php alle Grundlegenden Sachen wie das Template. Sieht also bis jetzt so aus

Code:
<?php
//Diese Datei wird in jeder Datei eingebunden und stellt die Grundfunktionalität zur Verfügung

//Skin
require_once ('./includes/layout.inc.php');

?>

layout.inc.php sieht so aus:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Home</title>
<meta name="keywords" content="benchmark" />
<meta name="description" content="Description of website ..." />
<link href="./css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="main">
  <div id="logo"><a href="index.html"><img src="images/logo.gif" alt="Your Business" border="0" style="display:block;float:left;" /></a>
    <div id="navbar">
      <ul>
        <li><a href="index.html">Kontakt</a></li>
        <li><a href="about.html">Impressum</a></li>
              </ul>
    </div>
  </div>
  <div id="mainphoto"><img src="images/photo-main.jpg" alt="Your Company" /><a href="about.html"><img src="images/statement-main.gif" alt="Business Solutions to fit your personal needs." border="0" /></a></div>
 
  <div id="main-inner">
    <div id="main-inner-left">
     
    </div>
   
    
  </div>
 
</div>
<div id="footer"> Name</div>

</body>
</html>

Meine Vorstellung sah so aus, dass ich in jeder Datei die engine.inc.php aufrufe und mir somit meine ganzen Grundfunktionen wie Template (layout.inc.php) usw zur Verfügung stehen.

Jetzt habe ich folgendes Problem:

Wie stelle ich es an, dass mein ganzer Content und meine ganze Funktionalität, den/die ich in irgendwelchen Php und Html skripte neu hinzufüge auch direkt auf dem Template landet, ohne jedes mal den Code der layout.inc.php neu einbinden zu müssen???
Also in diesem fall zwischen den div Containern:
<div id="main-inner-left"> und </div>

Hoffe die Frage war verständlich?

Vielen Dank schon mal! freue mich um jede Hilfe....

VG
 
Wie stelle ich es an, dass mein ganzer Content und meine ganze Funktionalität, den/die ich in irgendwelchen Php und Html skripte neu hinzufüge auch direkt auf dem Template landet
Also in diesem fall zwischen den div Containern:
<div id="main-inner-left"> und </div>
Du lädst die Seiteninhalte per include/require_once an der Stelle in div#main-inner-left.

Und achte auf Deine Semantik! Du driftest ganz stark in Richtung div-Suppe!
 
ok! aber das mit dem include geht doch nur wenn ich eine Seite hineinlade, oder?
Wie ist es denn wenn ich mehrere Links habe und die sollen alle Richtig auf dem Template angezeigt werden also zwischen oben besagten Divs?
Da kann ich doch dann nicht alle per include zwischen die Conatiner laden
 
Ich weiß nicht, wie Du das meinst. Wie include geht, müsstest Du doch wissen, Du verwendest ja require_once, was genauso funktioniert.
include/require_once bindet den Inhalt der angegebenen Datei zur Laufzeit des PHP-Scripts an der Stelle in die aktuelle Datei ein.

Mit Links hat das nichts zu tun. Wenn der Nutzer einen Link anklickt, wird immer eine neue Seite geladen. Je nachdem, welche Seite geladen werden soll, musst Du halt in Deinem Container eine andere Datei includen.

Was Dir wahrscheinlich fehlt, ist das:
1. Links in etwa so: layout.php?seite=impressum
2. In layout.php fragst Du $_GET["seite"] ab und includest in Abhängigkeit des übergebenen Werts die gewünschte Seite.
 
Ok vielen Dank Efchen! hab nur noch ein problem

Hab jetzt folgenden Code:
Code:
<?php 
require_once('./includes/error_report.inc.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Benchmarkstudie der ibi research GmbH</title>
<meta name="keywords" content="benchmark" />
<meta name="description" content="Beschreibung noch eingeben ..." />
<link href="./css/style.css" rel="stylesheet" type="text/css" />
</head>

<!-- body Beginn-->
<body>
<!--div main Beginn-->
<div id="main">

<!-- div logo und navbar-->
  <div id="logo"><a href="index.html"><img src="./images/logo.gif" alt="Your Business" border="0"      style="display:block;float:left;" /></a>
    <div id="navbar">
      <ul>
        <li><a href="index.php?section=link_1">Home</a></li>
        <li><a href="impressum.php?section=impressum">Impressum</a></li>
              </ul>
    </div>
  </div>
 <!--div logo und navbar Ende--> 
 
  <div id="mainphoto"><img src="http://www.html.de/images/photo-main.jpg" alt="Your Company" /><a href="about.html"><img src="http://www.html.de/images/statement-main.gif" alt="Business Solutions to fit your personal needs." border="0" /></a>  </div>
 
  <!--div main-inner Beginn--> 
  <div id="main-inner">
  
    <!--div main-inner-left Beginn-->
    <div id="main-inner-left">
    
    <?php
/**
     * In einem Array die Inhalte sammeln
     * und mit GET bestimmen welche Datei
     * geladen werden soll
     * */
     
    $section = array();
    $section['link_1'] = './index.php';
    $section['impressum'] = './impressum.php';
    

if (isset($_GET['section'])) 
    { 
        switch($_GET['section']) 
        { 
        case 'link_1': include('index.php'); 
        break; 
        
        case 'impressum': include('impressum.php');
        break;       
      
        }     
    } 
    else 
    { 
        include('index.php'); 
    } 
?> 
     
    </div>
    <!--div main-inner-left Ende-->
    
   
    
  </div>
 <!--div main-inner Ende-->
</div> 
<!--div main Ende-->

<div id="footer"> Name</div>

</body>
</html>
Wenn ich jetzt besipielsweise die Impressumsdatei include dann wird der Inhalt dieser Datei doppelt ausgegeben.
Einmal richtig im Skin (also auf dem template)
und einmal irgendwo unten recht! Weiss jemand woran das leigen könnte das mir alles doppelt ausgegeben wird?
 
Du wirst die Datei wohl zweimal includen oder der Inhalt steht zweimal in der Includedatei drin.
Schau in den HTML-Code, der von PHP generiert wird.

Ich verstehe übrigens nicht, wozu Dein Array $section da ist, das wird scheinbar nicht verwendet. Oder verwendest Du das in einer der nachfolgenden Include-Dateien und lädst da Dein Impressum noch ein zweites Mal?
 
Genau.
Wenn es Probleme gibt und der Seiteninhalt nicht der ist, den man erwartet, dann ist eigentlich immer die erste Aktion in den Quelltext im Browser zu schauen.
Was PHP machen soll und was es macht, sind oft zwei verschiedene Dinge. Guckt man dann nur in den PHP-Quellcode, sieht man den Fehler oft nicht.
 
Zurück
Oben