fachinformatiker
Goto Top

Dynamische Navigation

Guten Morgen,
ich habe das Problem, dass ich innerhalb einer Seite navigieren muss, aber ich weiss nicht genau, an welche Stelle. Es soll immer zu einem bestimmten Buchstaben des Alphabets gehen, aber nicht immer zu allen.
Soweit bin ich mit meinem PHP-Code schon. Nur, wie erstelle ich den Anker ?
Mit
<source>
echo "<a name='$buchstabe'></a>";?>
</source>
funktioniert die Navigation nicht.
Kann mir jemand bei diesem Problem behilflich sein ?
Vielen Danke, würde mir sehr helfen

Content-Key: 32594

Url: https://administrator.de/contentid/32594

Printed on: April 20, 2024 at 03:04 o'clock

Member: soa2ii
soa2ii May 16, 2006 at 11:20:57 (UTC)
Goto Top
tut mir leid... ich verstehe dein problem nicht genau...
was willst du erreichen?
den Anker ertstellst du doch mit deinem code... oder verstehe ich da was komplett falsch?
kannst du ähnliches mal als link zeigen?

mfg
soa2ii
Member: fachinformatiker
fachinformatiker May 16, 2006 at 11:27:17 (UTC)
Goto Top
Ja, den Anker erstelle ich mit meinem Code. Das Problem ist, dass ich mit
<source>
echo "<a href='#$buchstabe'><font size='4'>$buchstabe</a>&nbsp;</font>";
</source>
nicht auf den Anker zugreifen kann. Der Browser bleibt dort, wo ich hinklicke und geht nicht zu dem Anker den ich mit oben gezeigtem Code erzeuge.
Kann das irgendwie dranliegen, dass das php wieder von dem Server abgefragt wird und dieser meine Konstruktion nicht als Anker erkennt ?
Habe auch schon andere Syntaxen probiert. Wenn ich mir von Browser aus den Quelltext anzeigen lasse, ist Anker und Link richtig angegeben.
Wodran liegt das ?
Hat bitte jemand eine Idee ?
Member: soa2ii
soa2ii May 16, 2006 at 11:35:53 (UTC)
Goto Top
also wenn ich das richtig verstehe willst du dynamisch ein paar anker erstellen und dann per menü auf diese zugreifen:
das sieht dann so aus...

irgendwo im text
<a name="ankername">

und im menu
<a href="<?php echo $PHP_SELF; ?>#ankername">

bei dem $PHP_SELF bin ich mir nicht ganz sicher aber das müsste die richtige variable sein...

dann springt er vom menu link zum anker...
oder hab ich das problem ganz falsch verstanden?

mfg
soa2ii
Member: fachinformatiker
fachinformatiker May 16, 2006 at 11:46:56 (UTC)
Goto Top
Das Problem hast du richtig verstanden, aber es geht so nicht, weil ich muss den Anker auch dynamisch erzeugen, da ich nicht weiss, ob der Buchstabe gebraucht wird oder nicht(Feststellung nur per php).
Ich habe jetzt im Menü:
<a href='<?echo $PHP_SELF;echo "#".$buchstabe."'>";echo "<font size='4'>".$buchstabe."</font></a>&nbsp;";
Und irgendwo im Text habe ich:
<a name=<?echo chr(34)."$buchstabe".chr(34)?>></a>
Aber das funktioniert leider nicht.
Kannst du mir die richtige Syntax sagen, mit der es geht ?
Member: soa2ii
soa2ii May 16, 2006 at 11:58:20 (UTC)
Goto Top
ich müsste wissen wie du festellst welcher buchstabe gebraucht wird... da gibt es ja je nach dem logischere vorgehensweisen...

was soll das char(34); ?

mfg
soa2ii
Member: fachinformatiker
fachinformatiker May 16, 2006 at 12:53:10 (UTC)
Goto Top
Ich gehe das Alphabet durch und wenn ich dazu in meiner momentanen Auswahl Dokumente finde, wird der Anker an der Stelle gebraucht, gibt es in der momentanen Filterauswahl keine Dokumente, dann gibt es keinen Anker.
Die Dokumente werden dann in Tabellen aufgelistet, die per Link erreichbar sein sollen.
chr(34)=", das " geht aus Syntaxgründen nicht direkt hinzuschreiben.
Member: soa2ii
soa2ii May 16, 2006 at 22:35:03 (UTC)
Goto Top
ok... sry das ich erst jetzt wieder antworte...
also:
das " geht sehr wohl direkt hinzuschreiben wenn man es dem php herausnimmt oder mit \ "auskommentiert"...

nun zum eigentlichen problem:
du hast also eine liste mit dokumenten von a bis z, nun kann man auswählen das man zb von b - d die dinger sehen will... für c gibt es aber zb keine...
also willst du nun per anker eine struktur wie diese haben:

a - b - c - d (das menu)
b (anker)
--- dokumente ---

c (ist leer)

d (anker)
--- dokumente ---

richtig soweit?

ich würde dann bei der übergabe der buchstaben die ausgewählt wurden diese in ein array schreiben und damit die dokumente inkl anker ausgeben...
also
menu:
for($i=0; $i <= count(array); $i++)
echo array[$i]." ";

und dann weiter unten nochmal das ganze für die dokumente
for($i=0; $i <= count(array); $i++)
{
<a name=" echo array[i] ">

-- liste der dokumente die mit array[i] anfangen --
}

das ist jetzt natürlich nur der grobe sinn ... und syntaxisch nicht richtig...
verstehst du das soweit oder verstehe ich dich ganz falsch?

mfg
soa2ii
Member: fachinformatiker
fachinformatiker May 17, 2006 at 06:02:12 (UTC)
Goto Top
So ähnlich habe ich es auch gemacht, mit der Syntax
<a name=" echo $buchstabe ">
im PHP-Code kriege ich als Ausgabe keinen Anker sondern
?>
Mit der Syntax
<a name="<? echo $buchstabe ?>">
im html-Code bekomme ich auch keinen Anker, der funktioniert, ich kann ihn nicht ansprechen, mein Link ist richtig, ich bekomme in der Adressleiste beim Klick auch z.B. "http://localhost/anzeigen.php#M" angezeigt, aber er springt nicht zu dem Anker.
Wieso springt er nicht zu dem Anker, wenn die Syntax richtig ist ? Wenn ich mir von dem zurückgegebenen html-Dokument den Quelltext anzeigen lasse, steht der Anker auch richtig drin.
Ich vermute, dass er wieder auf das php-Dokument zugreift und nicht auf das erzeugte html-Dokument und der Server interpretiert die Variablen nicht als Anker.
Ist das irgendwie anders möglich oder gibt es eine Syntax, mit der es geht ?
Aber danke für deine Mühen, soa2ii
Member: fachinformatiker
fachinformatiker May 17, 2006 at 08:23:34 (UTC)
Goto Top
Falls jemand interessiert, was mein Fehler war: Anker sind case-sensitiv
Member: soa2ii
soa2ii May 17, 2006 at 11:26:22 (UTC)
Goto Top
also der server erstellt mit php dynamisch html seiten, diese werden dann an den client (der der die site aufruft) übermittelt und sind dann statisch! es muss also lediglich ein syntaxfehler vorliegen... das er auf das php dokument zurückgreift ist (ich will nicht sagen nicht möglich da ich es nich genau weiß) unwahrscheinlich...

es würde mir helfen wenn du mal etwas code zeigen könntest... oder falls du die site mal hochlädst und mir zeigts... dann kann ich mir besser ein bild von den gegebenheiten machen...

was die syntax angeht:
nehmen wir an der buchstabe ist $char

für den link zum anker folgt daraus:
<a href="<?php echo $PHP_SELF; ?>#<?php echo $char; ?>">char</a>

und für den anker:
<a name="<?php echo $char; ?>">

oder sehe ich da was falsch?

wie gesagt... es würde helfen wenn du mal die site zeigts ;)

mfg
soa2ii
Member: soa2ii
soa2ii May 17, 2006 at 11:27:31 (UTC)
Goto Top
Falls jemand interessiert, was mein Fehler
war: Anker sind case-sensitiv

jez hab ich grad extra so viel geschrieben :D
erklär mal genauer was nun der fehler war ... ^^
wenn du den buchstaben doch aus ner variable ausliest ist er doch beidesmal groß oder klein... oder seh ich da was falsch?

mfg
soa2ii
Member: fachinformatiker
fachinformatiker May 17, 2006 at 11:32:17 (UTC)
Goto Top
Der Buchstabe war immer klein, da er aber in der Navigation groß dargestellt werden sollte, schrieb ich vorher strtoupper($buchstabe); und deswegen war er dann als Link groß, aber beim Anker klein, weil da wird ja nichts dargestellt und ich habs da übersehen.
Member: soa2ii
soa2ii May 17, 2006 at 11:36:44 (UTC)
Goto Top
Der Buchstabe war immer klein, da er aber in
der Navigation groß dargestellt werden
sollte, schrieb ich vorher
strtoupper($buchstabe); und deswegen war er
dann als Link groß, aber beim Anker
klein, weil da wird ja nichts dargestellt
und ich habs da übersehen.

:'(
nene... man findet auch immer wieder was neues... und ich war echt schon kurz davor zu sagen ob du die schreibweise beachtest und dachte mir immer
"neee... das macht der schon... er liest ja aus ner variable aus"


naja gut das es jez doch klappt...

mfg
soa2ii
Member: fachinformatiker
fachinformatiker May 17, 2006 at 11:51:53 (UTC)
Goto Top
Ja, war ein dummer Fehler, habe mich auch geärgert.
Vielen Dank für deine Mühen