Hallo,
ich möchte über php, je nach angeklicktem Menüpunkt, seitenspezifische css- und js-Angaben in meine html-Struktur einhängen.
Die relevante html-Struktur sieht folgendermassen aus:
<head>
<title>1. Dartclub Altdorf e.V.</title>
<link rel="stylesheet" href="css/Meldungen.css" type="text/css" media="screen" />
<link rel="stylesheet" href="css/Layout.css" type="text/css" media="screen" />
<link rel="stylesheet" href="css/Menuepunkte.css" type="text/css" media="screen" />
<?php
echo $Formatierungen;
echo $Javascript_head;
?>
<script type="text/javascript">
window.onload=function()
{
<?php
echo $Javascript_onload;
?>
}
</script>
</head>
Die php-Datei, die das Menü aufbaut und die seitenspezifischen css- und js-Angaben festlegt, hat folgenden Aufbau (ich habe hier den Code ebenfalls auf den relevanten Abschnitt reduziert):
$Menuepunkte = array ("Neuigkeiten", "Vereinsheim", "Mitglieder", "Kontakt", "Gaestebuch", "Links", "Rechtliches");
$Aktionen = array ("Lesen", "Eintragen", "Vorschau", "Bestaetigung");
foreach ($Menuepunkte as $Menuepunkt)
{
if ($Menuepunkt == $Seite)
{
$Menue .= '<span id="' . $Menuepunkt . '_active"></span>';
if ($Seite == "Gaestebuch")
{
$Formatierungen = '<link rel="stylesheet" href="css/Gaestebuch_Lesen.css" type="text/css" media="screen" />';
$Javascript_head = '<script src="js/Gaestebuch_Lesen.js" type="text/javascript"></script>';
$Javascript_onload = 'Datenbank_aufbauen (); Cufon.replace ("#Anzeigebereich"); Container_Meldungen.style.display = "none";';
}
}
else
{
$Menue .= '<a id="' . $Menuepunkt . '" href="Layout.php?Seite=' . $Menuepunkt . '"></a>';
$Javascript_onload = 'Cufon.replace ("#Anzeigebereich");';
}
}
Unverständlicherweise ist es jetzt aber so, dass beim ausgewählten Menüpunkt "Gaestebuch" die Angaben nicht vollständig eingebunden werden:
<link rel="stylesheet" href="css/Gaestebuch_Lesen.css" type="text/css" media="screen" />
<script src="js/Gaestebuch_Lesen.js" type="text/javascript"></script>
<script type="text/javascript">
window.onload=function()
{
Cufon.replace ("#Anzeigebereich");
}
</script>
Die zusätzliche stylesheet-Datei wird eingebunden, ebenso die zusätzliche javascript-Datei, aber die zusätzlichen Funktionen für das "onload"-Ereignis werden ignoriert (?).
Das Menü ansich funktioniert einwandfrei.
Kann es daran liegen, dass mit "echo {Funktion}" eher ein Ergebnis ausgegeben wird, als die Funktion selber eingehängt wird?
Woran liegt es, dass die "onload"-Funktion nicht vollständig befüllt wird?
Fehlermeldungen oder Warnungen bekomme ich vom Firebug nicht, d.h. soweit muß formal alles richtig notiert sein.
Vielen Dank für Eure Mithilfe und Gruß
Enrico