Problem mit Zusammenbau eines Strings
cisco
- php
Hallo,
meine Navigation steht in einem Array, das dyn, zusammengebaut wird. Ich habe 2 style definiert, eins für Hauptpunkte, eins fürs Untermenü.
So sieht das Ganze in PHP aus
$naviString = '<div id="main_navi">';
foreach($navi){
$naviString.="<a href=".$navi[2]."index.php>".$navi[1]."</a><br>";
if($pageName==$navi[0]){
// $naviString.="<div id="sub_navi">";
foreach($subNavigation[$pageName] AS $subnavi){
$naviString.="<a href="".$subnavi[0].".php">".$subnavi[1]."</a><br>";
}
//$naviString.="</div>";
}
}
$naviString .= '</div>';
echo $naviString;
Es funktioniert techn. einwandfrei, also das Menü wird entspr. der HAupt- und Untermenüpunkte zusammengebaut. Alle Hauptpunkte stehen untereinander, sollte es einen oder mehrer Untermenüpunkte geben, werden die entspr. eingefügt.
ABER: Ich krieg es nicht hin, den Text der Untermenüpunkte anderes zu formatieren (kleiner Schrift, eingerückt). Die beiden entspr. div-Zeilen hab ich oben auskommentiert. so wird es zwar richtig zusammengebaut, allerdings alles gleih formatiert (logisch). Nehm ich die Zeilen wieder rein, wird das Untermenü GAR NICHT angezeigt.
Jemand nen Tipp, woran das liegen könnte?
1000dank schonmal & gruß
cisco
Grüße,
$naviString.="<a href="".$subnavi[0].".php">".$subnavi[1]."</a><br>";
um class="unternavi" ergänzen?
$naviString.="<a href="".$subnavi[0].".php" class="unternavi">".$subnavi[1]."</a><br>";
dazu iwo im css
.unernavi {
blab-ala
}
MFG
bleicher
Grüße,
$naviString.="<a href="".$subnavi[0].".php">".$subnavi[1]."</a><br>";
um class="unternavi" ergänzen?
$naviString.="<a href="".$subnavi[0].".php" class="unternavi">".$subnavi[1]."</a><br>";
dazu iwo im css
.unernavi {
blab-ala
}
MFG
bleicher
Hi
guter Tipp, danke. Aber es geht leider trotzdem nicht :-/ Eine .sub_navi hab ich natürlich angelegt. Bzw. ich hab e eine #sub_navi!!
Ist das ein Unterschied ob . oder #?
danke&ciao
geht foreach() auch ohne 'as'?
Was hätte das für einen Zweck?
Hab ich da 'was übersehen?
Also das wäre mir neu und es funktioniert auch nicht.
PHP Handbuch:
foreach (array_expression as $value) Anweisung
foreach (array_expression as $key => $value) Anweisung
Testcode
foreach ($a)
echo 'Hallo;
Fehlermeldung
( ! ) Parse error: syntax error, unexpected ')'
PHP Version 5.2.5
Hello,
geht foreach() auch ohne 'as'?
Was hätte das für einen Zweck?
Hab ich da 'was übersehen?Also das wäre mir neu und es funktioniert auch nicht.
PHP Handbuch:
foreach (array_expression as $value) Anweisung
foreach (array_expression as $key => $value) AnweisungTestcode
foreach ($a)
echo 'Hallo;Fehlermeldung
( ! ) Parse error: syntax error, unexpected ')'
PHP Version 5.2.5
Das gäbe ja auch ein Scope-Problem. So zumindest in meiner Vorstellung.
Aber PHP hat mich da schon manches Mal (negativ) mit seiner zu großen Toleranz überrascht...
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Das geht auch nicht mit PHP 4.3.1, 4.4.7 und PHP 6 svn. mit anderen Worten es ging nie.
Hello,
Das geht auch nicht mit PHP 4.3.1, 4.4.7 und PHP 6 svn. mit anderen Worten es ging nie.
Es wirft doch aber einen Parse Error. Den kann cisco doch wohl kaum ausgeschaltet haben.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Es wirft doch aber einen Parse Error. Den kann cisco doch wohl kaum ausgeschaltet haben.
Ich verwende
error_reporting = E_ALL & ~E_NOTICE
Wenn man
error_reporting = E_NOTICE
einstellt ergibt es einen weißen Schirm ohne Ausgabe.
Nun gut - wie dem auch sei - die erste Schleife kann so nicht funktionieren. Der Syntax ist seit 4.3.1 (da habe ich noch die Handbücher) bis heute unverändert.
Hello,
Es wirft doch aber einen Parse Error. Den kann cisco doch wohl kaum ausgeschaltet haben.
Ich verwende
error_reporting = E_ALL & ~E_NOTICE
Wenn man
error_reporting = E_NOTICE
einstellt ergibt es einen weißen Schirm ohne Ausgabe.
Klar, wenn man so entwickelt "Mein Programm ist OK, wenn es keine Fehlermeldungen mehr produziert", diesen Zustand aber durch das Ausschalten derselbigen erzwingt, ist es natürlich logisch.
Aber das will ich nicht glauben, dass ein Entwickler sowas machen könnte ;-))
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
00> Aber das will ich nicht glauben, dass ein Entwickler sowas machen könnte ;-))
Das würde ganz sicher keiner machen.
Grüße,
guter Tipp, danke. Aber es geht leider trotzdem nicht :-/
überprüfe noch mal - das MUSS gehen - wie sieht HTML-ausgabe aus?
Ist das ein Unterschied ob . oder #?
natürlich -
. ist class - die kann mehrmals auftreten
MFG
bleicher
Grüße,
guter Tipp, danke. Aber es geht leider trotzdem nicht :-/
überprüfe noch mal - das MUSS gehen - wie sieht HTML-ausgabe aus?
Hallo
ja, es geht doch :) Sorry. Irgendwie hats meien CSS zerfetzt, d.h. das Submenü wurde zwar angezeigt, aber in weiß (und somit "unsichtbar") und an völlig falscher position.
Aber jetzt hab ichs wieder gefunden :)
Vielen dank,
cisco
Hello,
foreach($navi) ## as ???
{
$naviString.="<a href=".$navi[2]."index.php>".$navi[1]."</a><br>";
if($pageName==$navi[0])
{
// $naviString.="<div id="sub_navi">";
foreach($subNavigation[$pageName] AS $subnavi)
{
$naviString.="<a href="".$subnavi[0].".php">".$subnavi[1]."</a><br>";
}
//$naviString.="</div>";
}
}
geht foreach() auch ohne 'as'?
Was hätte das für einen Zweck?
Hab ich da 'was übersehen?
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
hi
geht foreach() auch ohne 'as'?
Was hätte das für einen Zweck?
Hab ich da 'was übersehen?
ja, das geht auch. Es erleichter nur das Schreiben, weil man statt "$subNavigation[$pageName]" einfach nur noch "$subnavi" schreiben kann :)
gruß
echo $begrüßung;
meine Navigation steht in einem Array, das dyn, zusammengebaut wird. Ich habe 2 style definiert, eins für Hauptpunkte, eins fürs Untermenü.
So sieht das Ganze in PHP aus
Das ist schon der zweite Schritt. Bau bitte zunächst das Menü (oder ein beispielhaftes) mit HTML-Code auf. Dann kannst du damit testen, wie sich das CSS darauf auswirkt. Im Allgemeinen muss man keine DIV-Suppe bauen, wenn man eine Liste erzeugen will. Dafür gibt es bereits Elemente, wie <ul> nebst <li>. Solche Listen lassen sich auch schachteln.
foreach($navi){
[...]
// $naviString.="<div id="sub_navi">";
Das (abgesehen vom foreach-Fehler) erzeugt in deinem Dokument am Ende mehrmals die gleiche ID. IDs müssen dokumentweit eindeutig und einmalig sein. Wenn du mehrere Elemente gleich klassifizieren willst, nimm eine Klasse.
ABER: Ich krieg es nicht hin, den Text der Untermenüpunkte anderes zu formatieren (kleiner Schrift, eingerückt).
Ein Untermenüpunkt zeichnet sich dadurch aus, dass er entweder einer bestimmten Klasse angehört oder in einer bestimmten Struktur steckt. "ul li" ist ein beliebiger Menüpunkt. "#main_navi li" ist ein Menüpunkt des Hauptmenüs (Das gibt es nur einmal, deswegen kann es auch eine ID bekommen.) "#main_navi li ul" ist ein Untermenü und "#main_navi li li" oder "#main_navi ul li" ist ein Untermenüpunkt. "ul ul li" bzw. "ul li li" geht auch, wenn die ganze Struktur nicht in weiteren ULs steckt und solch ein Gebilde nicht weiter auf der Seite vorkommt. Da man aber nicht weiß, ob nicht in Zukunft weitere Listengebilde im Projekt hinzukommen, wäre eine der Varianten mit der #main_navi meines Erachtens die sinnvollere.
Wenn du nun dein CSS-Problem erfolgreich geklärt hast, kannst du weitermachen und den PHP-Code schreiben, der dir das HTML-Gebilde zusammenbaut. Da du dir zunächst ein Beispiel gebaut hast, kannst du nun das Ergebnis des PHP-Codes mit dem funktionierenden Beispiel vergleichen, wenn der mit PHP zusammengebaute HTML-Code nicht so will wie er soll.
echo "$verabschiedung $name";