Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „[PHP] Webseite mit Submenü mittels Include und Switch Funktion“

Pixelaner

Der Pixelaner

Hallo miteinander,

ich bin ein totaler Neuling auf dem PHP Gebiet und scheiter gerade an einem eventuell simplen Problem. Ich habe meine Seite mittels Switch und Include Funktion aufgebaut und ich bin auf ein Problem mit dem Untermenü gestossen.

Die Seite:

Das Problem: Es Funktioniert alles wunderbar bis auf das Submenü im Bereich Person (nur testhalber dort eingefügt, es sollen später auch andere Rubriken Unterpunkte enthalten). Ich weiss nicht wie ich eine neu includete Datei in dem Contentbereich (Mittlere Spalte) einfügen kann, ohne das im Hauptmenü der "Aktiv"-Button nichtmehr angezeigt wird.

Kurz zusammengefasst nach meiner grausigen Erklärung: Menüpunkt soll aktiv angezeigt werden (Button mit orangen Balken). Wenn dort eine Unternavi vorhanden ist, soll diese links angezeigt werden. Die Unterpunkte müssen im mittleren Bereich eingeladen werden, wobei der aktiv Button Aktiv bleiben muss.

Nun der bisherige Code:

INDEX.PHP
Code:
<?
if (!isset($_GET['page'])){
  $_GET['page'] = "Startseite";
}
?>
<!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>
    <title>Der Pixelaner - Webdesign, Mediengestaltung, Tutorials, CSS Templates</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <link href="css/main.css" rel="stylesheet" type="text/css" media="screen" />
    <link rel="shortcut icon" href="favicon.ico" />
    <meta name="description" content="" />
    <meta name="keywords" content="" />
  </head>
  <body>
    <div id="page">
      <div id="header">
        <h1><a href="http://www.pixelaner.de">Der Pixelaner - Webdesign, Mediengestaltung, Tutorials, CSS Templates</a></h1>
        <div id="menu-extension">
          <ul>
            <li><a href="index.php?page=Kontakt">Kontakt</a></li>
            <li><a href="index.php?page=Impressum">Impressum</a></li>
            <li><a href="index.php?page=Sitemap" class="mar0">Sitemap</a></li>
          </ul>
        </div>
      </div>
      <div id="menu">
        <ul>
          <li><a href="index.php?page=Startseite" <? if ($_GET['page'] == Startseite) { echo "id=\"active\""; } ?>>Startseite</a></li>
          <li><a href="index.php?page=Person&sub=id2" <? if ($_GET['page'] == Person) { echo "id=\"active\""; } ?>>Person</a></li>
          <li><a href="index.php?page=Arbeiten" <? if ($_GET['page'] == Arbeiten) { echo "id=\"active\""; } ?>>Arbeiten</a></li>
          <li><a href="index.php?page=Tutorials" <? if ($_GET['page'] == Tutorials) { echo "id=\"active\""; } ?>>Tutorials</a></li>
          <li><a href="index.php?page=Templates" <? if ($_GET['page'] == Templates) { echo "id=\"active\""; } ?>>CSS Templates</a></li>
          <li><a href="index.php?page=Links" <? if ($_GET['page'] == Links) { echo "id=\"active\""; } ?>>N&uuml;tzliche Links</a></li>
        </ul>
      </div>
      <div id="trailer">
        <img src="images/trailer-1.jpg" alt="" title="" height="200" width="900" />
      </div>
      <div class="spacer"></div>
      <div id="content">
        <div id="column-a">
<?
  switch ($_GET['sub']) {
  case id2:
  include("inc/sub-person.inc");
  break;
  
  default:
  echo "&nbsp";
  break;
  }
?>

        </div>
        <div id="column-b">
<?
  switch ($_GET['page']) {
    case Startseite:
    include("inc/home.inc");
    break;
    
    case Person:
    include("inc/person.inc");
    break;
    
    case Arbeiten:
    include("inc/arbeiten.inc");
    break;
    
    case Tutorials:
    include("inc/tutorials.inc");
    break;
    
    case Templates:
    include("inc/templates.inc");
    break;
    
    case Links:
    include("inc/links.inc");
    break;
    
    case Kontakt:
    include("inc/kontakt.inc");
    break;
    
    case Impressum:
    include("inc/impressum.inc");
    break;
    
    case Sitemap:
    include("inc/sitemap.inc");
    break;
    
    case test:
    include("inc/test.inc");
    break;
       
    default:
    include("inc/home.inc");
    break;
  }
?>

        </div>
        <div id="column-c">
          <a href="http://www.canvision.de" target="_blank"><img src="images/banner/canvision.jpg" alt="Canvision - Vision for Webarts" title="Canvision" height="60" width="183" class="img-brd" /></a>
          <img src="images/partner-template.gif" alt="" title="" height="60" width="181" class="img-brd" />
          <img src="images/partner-template.gif" alt="" title="" height="60" width="181" class="img-brd" />
        </div>
        <div class="clr"></div>
      </div>
      <div class="spacer"></div>
      <div id="footer">
        &copy; 2008 Pixelaner
      </div>
    </div>
  </body>
</html>


Vielen Dank schonmal für die ersten Hilfeversuche :D

mfg Pixelaner
 

Der_Ritter

Nicht mehr ganz neu hier

AW:
PHP:
 Webseite mit Submenü mittels Include und Switch Funktion[/b]

So auf die Schnelle eine erste Idee:

<? if ($_GET['page'] == Person || "Eine der Variablen die du im Untermenu mit dem Link übergibst") dann mach das Ganze aktiv { echo "id=\"active\""; }

Gruß
Der_Ritter
 

Pixelaner

Der Pixelaner

AW:
PHP:
 Webseite mit Submenü mittels Include und Switch Funktion[/b]

An welche Stelle müsste ich das denn einfügen ? Im Link selbst ?
 

Pixelaner

Der Pixelaner

AW:
PHP:
 Webseite mit Submenü mittels Include und Switch Funktion[/b]

Meine Denkweise ist ja die, das die Variable die mit dem Unterpunkt übergeben wird zB. cat=unterpunkt1 ... Damit es in dem Switch Bereich (page) ja auch angezeigt wird müsste ja aus cat , page werden.
 

Der_Ritter

Nicht mehr ganz neu hier

AW:
PHP:
 Webseite mit Submenü mittels Include und Switch Funktion[/b]

Es geht ja nur darum, den Butten aktiv zu halten. Wann soll er aktiv sein? Wenn entweder page == person ODER sub == id2. Das ist die Bedingung für den aktiven Button. 
<? if ($_GET['page'] == Person) || ($_GET['sub'] == id2)
 { echo "id=\"active\""; } ?>
Das andere ist die Abfrage der Variablen um den entsprechenden Inhalt einzubinden:
  switch ($_GET['page']) {
  
case Person:
    include("inc/person.inc");
    break;
}


switch ($_GET['sub']) {
  case id2:
  include("inc/sub-person.inc");
  break;
}
Gruß
Der_Ritter
 

Pixelaner

Der Pixelaner

AW:
PHP:
 Webseite mit Submenü mittels Include und Switch Funktion[/b]

Das habe ich mit den 2 Switches auch schon probiert, nur leider wird dann die Seite die davor geladen wurde noch mit dadrüber angezeigt :( Der vorherige Include müsste demnach erst entladen und der neue geladen werden.
 

Der_Ritter

Nicht mehr ganz neu hier

AW:
PHP:
 Webseite mit Submenü mittels Include und Switch Funktion[/b]

Vielleicht in der inc/person.inc eine switch-Abfrage, wo du je nach übergebener Variablen vom sub-menu den entsprechenden Text ausgibst.

Beispiel: der Link im Submenu übergibt folgende Variablen page=Person&sub=id2&menupunkt=eins. 
In person.inc erfolgt noch einmal eine Switchabfrage nach der Variablen menupunkt. Bei default, also wenn der Link nicht vom Untermenu kommt, also menupunkt leer ist, also Link zu Person direkt aufgerufen wurde,zeige den klassischen Text von person.inc an. Ansonsten den Inhalt des Untermenupunktes.

Issn Lösungsansatz.

Gruß
Der_Ritter
 
Zuletzt bearbeitet:

sokie

Mod | Web

AW:
PHP:
 Webseite mit Submenü mittels Include und Switch Funktion[/b]

Hallo pixelaner,
ich frage mich, ob der switch überhaupt an der Stelle erforderlich ist.
der Parameter für das includen kommt doch aus deinem eigenen html ($_GET['page']).
Statt des switch-konstrukts würde doch auch ein einfaches:
[code]
include $_GET['page'].".inc";
[/code]völlig reichen.(natürlich Gross/kleinschreibung anpassen)
wenn die subtopics aus dieser inc kommen, wäre es sinnvoll, wenn sie in einem Array lägen, dann könnte man einfach abfragen, wieviele einträge das Array hat, und direkt darüber iterieren und in der Mitte zur Anzeige bringen. zB
[code]
<?php
//code für den Mittleren Bereich:
if($subtopics){
  for ($i=0;$i<count(subtopics);$i++){
    echo "<li>$subtopics[$i]</li>";
  }
}
//weitere Ausgaben....
?>
[/code]
 

Pixelaner

Der Pixelaner

AW:
PHP:
 Webseite mit Submenü mittels Include und Switch Funktion[/b]

Oh man da sieht man mal wie wenig Ahnung ich im Umgang mit PHP habe (hoffe das ändert sich in der nächsten Zeit)  :)

Ich bin maßlos überfordert damit. 

Sokie: Der einfache Include funktioniert leider nicht. Und die Geschichte mit den Arrays raubt mir den letzten Nerv.



Achso um eines anzumerken: Ich möchte nicht das davon ausgegangen wird, dass ich hier nur jemanden suche, der mir die Seite fertig baut. Ich möchte schon gerne selbst dahinter kommen wie ich Menü + Submenü in einen Content Bereich laden kann.
 
Zuletzt bearbeitet:

Pixelaner

Der Pixelaner

AW:
PHP:
 Webseite mit Submenü mittels Include und Switch Funktion[/b]

Sokie: Der normale include ist nun funktionstüchtig.

Nun geht es nurnoch um das Submenü
 
Zuletzt bearbeitet:

sokie

Mod | Web

AW:
PHP:
 Webseite mit Submenü mittels Include und Switch Funktion[/b]

[code]
  include ("inc/".$_GET['page'].".inc");
[/code]
sieht doch schon mal ganz gut aus.
wenn du da noch unterordner hast gehst du einfach in der gleichen Weise vor:
[code]
  include ("inc/unterordner/".$_GET['page'].".inc");
[/code]

zu den Arrays:
Arrays vereinfachen (wie zB im konkreten Fall) dasarbeiten mit Daten sehr. Gerade PHP stellt eine grosse Zahl von Arrayfunktionen zur Verfügung, un man kann damit super arbeiten. Voraussetzung ist, dass man das Konzept einmal verstanden hat. Ich würde dir empfehlen Dich mit den Arrays vertraut zu machen bevor Du an der Stelle weiterkommst. wenn Du nochmaterial dazu brauchst könnte diese Seite hilfreich sein:[url=http://selfphp.de/praxisbuch/praxisbuchseite.php?site=89&group=21&page=1]Arrays: Seite 1[/url]
 

Pixelaner

Der Pixelaner

AW:
PHP:
 Webseite mit Submenü mittels Include und Switch Funktion[/b]

Vielen Dank für deine Hilfe! Ich werde mir mal in der Mittagspause die verschiedenen Arrays zu Gemüte führen :)

Vielleicht hab ich ja Glück und das Submenü steht in den nächsten Tagen.



mfg Chris
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.155
Beiträge
2.581.854
Mitglieder
67.221
Neuestes Mitglied
opaklaus
Oben