zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden [PHP] Frage zu include

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 16.03.2014, 22:11
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 17.02.2014
Beiträge: 21
Wiesl befindet sich auf einem aufstrebenden Ast
Standard [PHP] Frage zu include

Hallo Leute!

Ich hätte mal eine kurze Anfängerfrage, zu der ich nichts gefunden habe.

Ich möchte auf meiner Webseite gerne die Navigation "auslagern", um sie nicht immer auf 10+ Unterseiten ändern zu müssen und dann per php-Befehl include wieder einsetzen.

Wahrscheinlich gehe ich aber zu blauäugig dran.

Ich möchte eine Navigation z.B.:

Code:
<ul>
<li><a href="home.html">Home</a></li>
<li><a href="seite1.html">Seite 1</a></li>
<li><a href="seite2.html">Seite 2</a></li>
</ul>
per php auf allen Seiten einfügen:

Code:
<?php
include("navigation.php");
?>
aber mein Problem ist nun, dass ich jeweils einem <li>-Elemente die class="active" mitgebe, um den Link anders darzustellen, je nach aufgerufener Seite!
z.B.
Code:
<li><a class="active" href="home.html">Home</a></li>
Wie kann ich das mit meinem eingeschränkten Wissen in meinem PhP-Skript festlegen, wahrscheinlich gar nicht oder?

Wäre für jede Hilfe dankbar!

Wiesl
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 16.03.2014, 22:42
?!?
XHTMLforum-Kenner
 
Registriert seit: 20.03.2013
Beiträge: 1.638
explanator sorgt für eine eindrucksvolle Atmosphäreexplanator sorgt für eine eindrucksvolle Atmosphäre
Standard

Tja, dazu muss man ja erst einmal wissen wie du auswertest welche Seite aufgerufen wurde.

Nehmen wir mal an du hast sowas hier
Code:
http://www.example.com/?page=seite1
Dann wäre es einfach weil du dann seite1 einfach vergleichen kannst
PHP-Code:
$navigation file('navigation.php');
foreach ( 
$navigation as $key => $value) {
    if 
strstr($value'seite1') {
        
$navigation[$key] =  "<li><a class="active" href="seite1.html">Seite 1</a></li>\n";
    }
}
$output implode(""$navigation);

echo 
$output
Wenn du alles in einer DB hast, dann musst eben die Tabelle durchgehen und die Seite rausfiltern.
Ersetzen der Zeile dann wie oben beschrieben.
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..."
Aus einem Forum.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 17.03.2014, 22:07
Neuer Benutzer
neuer user
 
Registriert seit: 17.02.2013
Ort: Heidelberg
Beiträge: 19
SansArt befindet sich auf einem aufstrebenden Ast
Standard

Füge doch jedem deiner Menüpunkte sowas hinzu:
PHP-Code:
<?php if($current == "seitenname"){ echo "class='active'"}?>
un deklariere dann auf all deinen Seiten oben den Seitennamen mit

PHP-Code:
<?php $current "seitenname" ?>
seitenname ist dann halt überall anders aber das ist denke ich klar.

Geht sicher geschickter, ist aber ne schön einfache Lösung und hat mir bisher immer gute Dienste erwiesen.

Gruß
Sans

PS: Würde die Einbindung von einmaligen Sachen wie Menüs, Kopfbereichen etc per "includence" empfehlen
Mit Zitat antworten
  #4 (permalink)  
Alt 07.05.2014, 00:05
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 17.02.2014
Beiträge: 21
Wiesl befindet sich auf einem aufstrebenden Ast
Standard

Hallo mal wieder!

Habe mein Projekt nun einige Zeit ruhen lassen, und starte jetzt wieder durch.

Leider konnte ich mein Problem hier noch nicht lösen.

Ich möchte meine Navigation auslagern , um nicht immer 10+ Unterseiten zu ändern.
Bisher habe ich noch nicht mit PHP gearbeitet, die Frage ist ob es einen riesen Aufwand benötigt, um dies zu realisieren ,)
Habe beide Möglichkeiten ausprobiert, folgende Probleme:

@explanator
Ich werte bis jetzt noch gar nichts aus, ich habe einfach einige Seiten und dort überall meine Navigation drin.
Und im aktiven Menüpunkt einfach immer class="active" stehen.

@SansArt
Das verstehe ich bisher super, nur leider kann ich die Variable $current = "seitenname"; nicht in das Script navigation.php "schicken", wo ich die if-Formel verwende, um class="active" auszugeben.

Vielleicht könntet ihr mir einen Denkanstoss geben, um nicht mit einer Datenbank oder über die Adressleiste arbeiten zu müssen.

Danke
Wiesl
Mit Zitat antworten
  #5 (permalink)  
Alt 07.05.2014, 10:59
Benutzerbild von Thielo
Web Ninja
XHTMLforum-Kenner
 
Registriert seit: 17.09.2009
Ort: Stuttgart oder so
Beiträge: 3.372
Thielo ist ein LichtblickThielo ist ein LichtblickThielo ist ein LichtblickThielo ist ein LichtblickThielo ist ein LichtblickThielo ist ein Lichtblick
Standard

PHP: Geltungsbereich von Variablen - Manual

Das sollte ein Denkanstoß sein.
__________________
Hier ein immer gültiges Statement: Überarbeite deine Code, lerne die Grundlagen, widersprich mir nicht, wehre dich nicht, ich habe Recht, wir sind Lolgion, wir sind viele.. potato...
All meine Angaben sind ohne Gewähr, es könnte also trotz meiner Unfehlbarkeit dazu kommen dass ich falsch liege

www.richard-thiel.de | Müssen Websiten überall gleich ausschauen?
Mit Zitat antworten
  #6 (permalink)  
Alt 07.05.2014, 15:17
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 17.02.2014
Beiträge: 21
Wiesl befindet sich auf einem aufstrebenden Ast
Standard

Danke für den denkanstoss hat jetzt auch soweit funktioniert, d.h.

ich kann die Navi mit include
Code:
<?php
$seite = "index";
include("navigation.php");
?>
einbinden, aber:

Sobald ich irgendeine php-Funktion, wie z.B:

Code:
<?php if($seite == "index"){ echo "class='active'"}?>
in die navigation.php einbaue versagt diese die Bearbeitung, meine .php Seite sieht ungefähr so aus:

Code:
<div class="navbar">
	<div class="divmenu">
		<h4><a href="index.php" <?php if($current == "seitenname"){ echo "class='active'"}?> >Startseite</a></h4>
	</div>
</div>
was mache ich nun falsch?
wie muss ich die navigation.php deklarieren, dass dort php Befehle ausgeführt werden können?
Denn ohne die PhP Funktion lässt sich die Navi fehlerlos einbinden...

Wahrscheinlich ist dies die dümmste Frage seit Jahren, aber ich komme selbst mit Recherche nicht weiter...

Grüsse
Wiesl
Mit Zitat antworten
  #7 (permalink)  
Alt 13.05.2014, 12:34
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Hast du einfach mal probiert den Inhalt von $seite auszugeben?
PHP-Code:
var_dump($seite); 
Dann siehst du doch was falsch läuft.
Mit Zitat antworten
  #8 (permalink)  
Alt 13.05.2014, 12:49
?!?
XHTMLforum-Kenner
 
Registriert seit: 20.03.2013
Beiträge: 1.638
explanator sorgt für eine eindrucksvolle Atmosphäreexplanator sorgt für eine eindrucksvolle Atmosphäre
Standard

Bitte zeige doch mal den gesamten Code deiner Seite und nicht nur einen Ausschnitt daraus.
Hat dein Hoster PHP zugelassen?
Lautet die Dateiendung auf .php?
Hast du das Errorreporting eingeschaltet?
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..."
Aus einem Forum.
Mit Zitat antworten
  #9 (permalink)  
Alt 21.05.2014, 02:17
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Da fehlt ein Semikolon hinter der echo-Anweisung. „Gar keine Ausgabe“ ist immer ein Indiz für einen Syntaxfehler. Die tauchen aber vermutlich im Error-Log des Servers auf. Du kannst auch einen Editor verwenden, der solche Fehler anzeigt (NetBeans, Eclipse, PhpStorm dürften das zum Beispiel alle können), oder du kannst das Skript von Hand linten:

Code:
$ php -l file.php
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP] Template include Stylesheet wird nicht mit eingebunden buja Serveradministration und serverseitige Scripte 5 16.01.2011 01:27
Include Frage Baracudagirl Serveradministration und serverseitige Scripte 2 06.10.2010 20:36
[PHP] PEAR - Frage ct2oo4 Serveradministration und serverseitige Scripte 1 09.09.2007 19:23
Frage zu HP und include |SONY| (X)HTML 3 03.12.2006 03:38
[PHP] Probleme mit .htaccess und include(); Ahoj Serveradministration und serverseitige Scripte 4 01.02.2006 15:13


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:12 Uhr.