| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

30-09-2009, 22:38
|
|
mmnet
Registrierter Benutzer
|
|
Registriert seit: Sep 2009
Beiträge: 19
|
|
aktiver Link gestalten
Hallo, dieses Aufklappmenü includiere ich in die Dateien zu denen Verlinkt wird. Nun will ich dass die aktiven Menüpunkte per CSS eine andere Farbe bekommen.
Meine Idee mit
PHP-Code:
<?php $thisPage ="menu1";?>
die menu1.php zu kennzeichnen (und alle weiteren Dateien ebenfalls mit dem entsprechenden Link-Name zu versehen).
Dazu müsste nun in der navi.php die Anweisung rein, dass wenn
PHP-Code:
$thisPage =="menu1"
dann gebe die entsprechende css für den Menüpunkt aus.
Kann es so gehen, wie ich es formuliert habe?
Danke für Hilfe.
Maggie
navi.php
PHP-Code:
<!-- menue ohne untermenue --> <dl class="menu"> <dt> <?php echo '<a href="menu1.php?x=1">menu1</a>';?></dt> </dl> <!-- menue mit untermenues --> <dl class="menu"> <dt> <?php echo '<a href="menue2a.php?x=2">menue2</a>';?> </dt> <?php if(intval($_GET["x"]) == 2) { echo '<dd> <a href="menue2a.php?x=2">menue2a</a> <a href="menue2b.php?x=2">menue2b</a> <a href="menue2c.php?x=2">menue2c</a> </dd>'; } ?> </dl>
|

30-09-2009, 22:49
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von mmnet
Kann es so gehen, wie ich es formuliert habe?
|
Prinzipiell schon, aber man könnte es auch direkt über $_SERVER["SCRIPT_NAME"] vergleichen, weil das weniger Wartungsaufwand mit sich bringt.
|

30-09-2009, 23:11
|
|
mmnet
Registrierter Benutzer
|
|
Registriert seit: Sep 2009
Beiträge: 19
|
|
Zitat:
Zitat von AmicaNoctis
Prinzipiell schon, aber man könnte es auch direkt über $_SERVER["SCRIPT_NAME"] vergleichen, weil das weniger Wartungsaufwand mit sich bringt.
|
hm,
$scriptname= und da weiß ich nicht was rein muss
$_SERVER["SCRIPT_NAME"]
<?php if($scriptname==" menu1.php?x=1") {
<?php echo '<dt class="aktiv">
<a href="menu1.php?x=1">menu1</a></dt>';?>
}?>
|

30-09-2009, 23:16
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
PHP-Blöcke können nicht verschachtelt werden. ("<?php" innerhalb von "<?php" geht nicht)
Wenn du den letzten Kommentar nicht verstanden hast, bleib erstmal bei deiner Idee. Ich wollte dich nicht verwirren, will dir jetzt aber auch nicht umständlich erklären, wie ich es machen würde.
|

30-09-2009, 23:46
|
|
mmnet
Registrierter Benutzer
|
|
Registriert seit: Sep 2009
Beiträge: 19
|
|
Okay, ich taste mich mal langsam vor.
Bestehende Ausgabe:
PHP-Code:
<!-- menue ohne untermenue --> <dl class="menu"> <dt> <?php echo '<a href="menu1.php?x=1">menu1</a>';?></dt> </dl>
Nun die Kombination mit der if Abfrage:
PHP-Code:
<?php if $thisPage == menu1) { echo '<dt class="aktiv"> <a href="menu1.php?x=1">menu1</a> </dt>'; } ?>
Wenn nun die Untermenüs aufklappen - da weiß ich nicht wie ich '$thisPage einfügen muss, kann mir da jemand helfen?
PHP-Code:
<!-- menue mit untermenues --> <dl class="menu"> <dt> <?php echo '<a href="menue2a.php?x=2">menue2</a>';?> </dt> <?php if(intval($_GET["x"]) == 2) { echo '<dd> <a href="menue2a.php?x=2">menue2a</a> <a href="menue2b.php?x=2">menue2b</a> <a href="menue2c.php?x=2">menue2c</a> </dd>'; } ?> </dl>
|

01-10-2009, 00:22
|
|
mmnet
Registrierter Benutzer
|
|
Registriert seit: Sep 2009
Beiträge: 19
|
|
PHP-Code:
<?php if $thisPage == menu1) { echo '<dt class="aktiv"> <a href="menu1.php?x=1">menu1</a> </dt>'; } ?>
Dieser Versuch scheitert schon - es wird nichts mehr angezeigt.
Gruß
Maggie
|

01-10-2009, 00:29
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von mmnet
Dieser Versuch scheitert schon - es wird nichts mehr angezeigt.
|
Sollte aber, nämlich ein parse error. Unterdrückst du Fehlermeldungen? Es fehlt die linke Klammer beim if.
|

01-10-2009, 00:47
|
|
mmnet
Registrierter Benutzer
|
|
Registriert seit: Sep 2009
Beiträge: 19
|
|
Zitat:
Zitat von AmicaNoctis
Sollte aber, nämlich ein parse error. Unterdrückst du Fehlermeldungen? Es fehlt die linke Klammer beim if.
|
Danke! Die Klammer habe ich jetzt eingefügt, aber das selbe - die navi.php wird nicht mehr eingebunden und alle weiteren 'include' Positionen auch nicht.
Was muss ich denn tun, damit ich die Fehlermeldungen bekommen?
|

01-10-2009, 01:19
|
|
mmnet
Registrierter Benutzer
|
|
Registriert seit: Sep 2009
Beiträge: 19
|
|
Danke!
Nun bekomme ich diese Meldung:
Parse error: syntax error, unexpected T_STRING in der linie 3
Die Anführungszeichen ' muss ich doch setzen da eine html Ausgabe innerhalb von PHP erfolgt, oder?
PHP-Code:
<?php if ($thisPage == bueroprofil) echo '<dt class="aktiv"> <a href="buero.php?x=1">bueroprofil</a> </dt>'; ?>
|

01-10-2009, 01:22
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Ich vermute mal, es geht um die fehlenden Anführungszeichen um bueroprofil in der if-Abfrage. Warum der Zeile 3 statt 2 ausspuckt, kann ich dir grad auch nicht sagen, aber vermutlich ist es wirklich Zeile 3 und du hast den Code hier nur anders reinkopiert.
|

01-10-2009, 01:34
|
|
mmnet
Registrierter Benutzer
|
|
Registriert seit: Sep 2009
Beiträge: 19
|
|
Zitat:
Zitat von AmicaNoctis
Ich vermute mal, es geht um die fehlenden Anführungszeichen um bueroprofil in der if-Abfrage. Warum der Zeile 3 statt 2 ausspuckt, kann ich dir grad auch nicht sagen, aber vermutlich ist es wirklich Zeile 3 und du hast den Code hier nur anders reinkopiert.
|
ja, die " " bei bueroprofil fehlten auch!
Parse error: syntax error, unexpected T_STRING in /var/www/usw. on line 11
line 11 ist die echo usw.
<?php
if($thisPage=="bueroprofil")
echo '<dt class="aktiv">
<a href="buero.php?x=1">bueroprofil</a>
</dt>';
?>
|

01-10-2009, 01:51
|
|
mmnet
Registrierter Benutzer
|
|
Registriert seit: Sep 2009
Beiträge: 19
|
|
Juhu, einen Schritt weiter.
Wenn ich die Zuordnung der Kasse bei <dt> weglasse, wird kein Fehler mehr gezeigt. Aber das entscheidente ist die Zuordnung eines speziellen StyleSheets, damit der Link gestaltet werden kann.
PHP-Code:
<dl class="menu"> <?php if($thisPage=="bueroprofil") echo '<dt><a href="buero.php?x=1">bueroprofil</a></dt>';?>
|

01-10-2009, 02:09
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von mmnet
Juhu, einen Schritt weiter.
|
Aber ohne erkennbaren Grund ...
Zitat:
|
Wenn ich die Zuordnung der Kasse bei <dt> weglasse, wird kein Fehler mehr gezeigt.
|
Auch der zuvor gezeigte Code mit einem class-Attribut enthielt syntaktisch keinen Fehler.
Sieht so aus, als ob du uns nicht den wirklichen Code zeigst, mit dem du Probleme hast.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

01-10-2009, 02:24
|
|
mmnet
Registrierter Benutzer
|
|
Registriert seit: Sep 2009
Beiträge: 19
|
|
Zitat:
Zitat von wahsaga
Aber ohne erkennbaren Grund ...
Auch der zuvor gezeigte Code mit einem class-Attribut enthielt syntaktisch keinen Fehler.
Sieht so aus, als ob du uns nicht den wirklichen Code zeigst, mit dem du Probleme hast.
|
...doch, das war und ist der 'wirkliche' Code.
Aber der Code ohne die Klassen Angabe hatte ich in eine Linie (ohne Umbruch) gesetzt und das war wohl der springende Punkt.
Den Code zuvor, habe ich jetzt nämlich auch in eine Linie gepackt und siehe da, es funktioniert!
PHP-Code:
<?php if($thisPage=="bueroprofil") echo '<dt class="aktiv"><a href="buero.php?x=1">bueroprofil</a></dt>';?>
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
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.
HTML-Code ist aus.
|
|
|
|
PHP News
|