Javascript: Datumsabhängige Dateinamen

  • Liebe Leute,

    ich habe die Betreuung einer Homepage übernommen, die bisher als recht kompliziertes und fehleranfälliges Frameset programmiert war. Das ist nun geändert, hat aber den Effekt, dass eine bestimmte Sache nicht mehr funktioniert, die mit JavaScript konstruiert worden ist. Ich kriege mittlerweile HTML und CSS recht gut hin, aber bei Javascript kenne ich mich nicht aus und der Mensch, der das damals programmiert hat, ist nicht mehr greifbar.

    Konkret geht es um Folgendes:

    Es gibt auf der Seite ein Menü mit dem Menüpunkt "letzter Monat".
    Da im Moment November ist und der letzte Monat Oktober (10. Monat) war, sollte nun im "_top"-Fenster die Datei mgd10main.html geladen werden.

    Für "nächster Monat" soll entsprechend mgd12main.html geladen werden.

    Und wenn man auf "aktuell" klickt, soll, weil ja heute der 16. November ist, automatisch mgd11main.html#16 geladen werden. Und ab Mitternacht dann natürlich mgd11main.html#17. Und ab 1. Dezember soll alles automatisch einen Monat weiter rücken.

    Kann mir irgendjemand weiterhelfen, wie so etwas geht? Prinzipiell könnte ich - wenn das das Verfahren erleichtert - auch die Dateien umbenennen, aber es führen so viele Links dorthin, dass ich lieber die bisherigen, etwas verwirrenden Namen von mgd1main.html bis mgd12main.html behalten möchte.

    Ich bin für jeden Hinweis dankbar, da ich mich wie gesagt mit Javascript nicht auskenne und nur halbe Monsterdateien übernommen habe, bei denen ich keine Ahnung habe, wie sie eigentlich funktionieren...

    Oder geht das alles womöglich sogar ohne JavaScript? Gibt es irgendeine Möglichkeit, mit HTML auf die eigene Uhr oder auf eine "Serverzeit" zuzugreifen?

  • weil du anscheinend nicht eingeloggt warst ;) (*klugscheißer*)

    Also , musst du unbedingt ein Javascript benutzen , oder steht dir auch PHP zur Verfügung (bzw. ist der Server php-fähig)?

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Also mit PHP kenne ich mich genauso wenig aus wie mit Javascript, nämlich gar nicht. Ich kriege es einigermaßen hin, in einem Javascript-Script die Parameter zu erkennen und ggfs. zu ändern, aber wie das alles funktioniert und aus welchen Befehlen sich das aufbaut, weiß ich nicht.

    Ob der Server PHP-fähig ist, weiß ich nicht. In dem Dateienpaket, das ich übernommen habe, waren jedenfalls keine PHP-Dateien dabei. Ich kann Dateien mit der Endung .php erstellen, aber das sagt vermutlich nichts.

    Wirklich, keine Ahnung.

    Ich kann mal versuchen, mich schlau zu machen. Aber konkret: Was würde das denn ändern? Gäbe es eine sehr einfache Lösung für das Problem mit PHP?

  • Einfache erklärung:
    Javascript, clientlastig (abschaltbar) und damit funktioniert es nicht immer

    PHP läuft auf dem Server, zieht davon etwas an Leistung, funktioniert aber immer und wird besonders bei solchen Sachen wie Kalender oder Login gerne verwendet, damit der eigentliche Programmablauf und auch der Quellcode dazu auf dem Server bleibt.

    Daher ist das PHP für die Performance einfach besser.

    Eine einfache möglichkeit rauszufinden , ob dein Server php unterstützt, erzeuge eine PHP-Datei mit folgendem Code:

    <?php phpinfo(); ?>

    achte darauf dass vor dem "<" und nach dem ">" keine Leerzeichen oder Zeilenumbrüche stehen. (hier noch nicht relevant, aber gewöhn dich schonmal dran)

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Dann ist der Dateipfad falsch gewesen, poste den mal bitte

    edit: du hast die Datei aber schon auf den Server geladen oder?

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Ja, selbstverständlich habe ich die Datei hochgeladen. Ich habe auch noch eine zweite Datei hochgeladen, die genauso aussieht, aber die Endung php3 hat. In beiden Fällen folgt beim Aufruf durch den Browser (und zwar verschiedene Browser) die Meldung:

    The requested document was not found on this server.

  • Darf ich zuerst erfahren, was der Link hier Entscheidendes beiträgt? Ich habe nichts zu verbergen (das ist keine verbotene und unanständige Website), aber ich habe in ähnlichen Foren schon genügend dumme Bemerkungen mir anhören müssen, weil da irgendetwas nicht strict HTML ist und überhaupt alles nur stümperhaft und rückständig und man das heute nicht mehr so macht und außerdem der Browser Soundsoschlagmichtot das ganz anders darstellt und Anfänger die Finger von sowas lassen sollte und ich mich eigentlich schämen müsste usw. usw. Und das ist einfach demotivierend, und ich habe dafür auch keine Zeit und Energie - zumal ich doch das Problem jetzt klar geschildert habe...

    Es existiert auf den alten Seiten bereits ein JavaScript, das genau das von mir Beschriebene bewirkt (kann ich auch gerne posten, wenn das was nützt), aber ich schaffe es nicht, das in die neuen Dateien zu übertragen, weil das alte Javascript gleichzeitig auch noch ein ganzes Frameset öffnet, wo dann zwei passende Dateien geöffnet werden. Ich brauche aber nur EINE HTML-Datei, die abhängig vom aktuellen Datum ausschließlich im Fenster "_top" geöffnet wird. Und weil ich mich mit Javascript nicht auskenne und daher den Aufbau der Scripte, die ich übernommen habe, nicht verstehe, dachte ich, ich frage halt mal.

  • das wirst du wohl ertragen müssen, denn genug leute (auch sehr fähige wie z.B. phpfan) werden dir nicht ohne Grund sagen , mach es valide, denn so biste nunmal auf der sicheren seite, dass es funktioniert.

    Und wenn du schon keine Zeit oder lust hast, dann hab ich auch gleich keine mehr dir zu helfen...

    da will man schon ne besser Lösung anbieten, die zudem noch kostenfrei bereitstellen und dann kriegt man solche Antworten - herlich

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Tut mir leid, aber ich verstehe einfach nicht, warum ich den Link posten soll. Was tut das zur Sache?

    Ich möchte einfach nur nicht blöd angemacht werden, nur weil ich eine Frage stelle. Es ist ja niemand gezwungen, mir zu helfen. Ich habe versucht, sehr klar zu sagen, was ich brauche, nämlich ein JavaScript, das genau das bewirkt, was ich oben beschrieben habe.

    Und dann soll ich den Link posten, irgendetwas über den Server wissen, was ich nicht weiß... Ich möchte das nicht tun, weil ich einfach nicht blöd angemacht werden will.

    Bislang hat jede Datei in dem ganzen Paket im <head>-Bereich Folgendes stehen:

    <script language="JavaScript"><!--
    //------------------------------- Tagesdatum und aktueller Monat --------------------------------------------
    var heute= new Date ()
    var jahr = heute.getYear ()
    var tag = heute.getDate ()
    var monat = heute.getMonth () //Monatsz&auml;hlung beginnt mit 0
    var vormonat = monat
    aktmonat=monat+1 // "
    nextmonat = monat+2
    if (monat==11) nextmonat = 1
    //------------------------------- Die MonatsURLs in den verschiedenen Rahmen --------------------------------//
    function navigation(URL1,F0,URL2,F1)
    {
    parent.frames[F0].location.href=URL1;
    parent.frames[F1].location.href=URL2;
    }
    function naviggd(URL1,F1)
    {
    parent.frames[F1].location.href=URL1;
    //parent.frames[F1].location.href=URL2;
    }
    // -->
    </script>

    Ich weiß nicht, was das alles ist, ich weiß nur, dass es genau das bewirkt, was ich oben beschrieben habe. Die von mir beschriebenen Links sehen so aus:

    <a href="javascript:naviggd('./mgd'+aktmonat+'main.html#'+tag,1)">

    Offenbar bewirkt das alles genau das, was ich beschrieben habe. Zukünftig soll es das gleiche bewirken wie bisher - nur soll die jeweils passende Datei im Fenster "_top" geöffnet werden.

    Ich bin sehr dankbar, wenn mir jemand helfen mag; aber ich habe nie behauptet, jemand sei dazu verpflichtet. Nur wenn jemand weitere Fragen an mich hat, möchte ich mir gerne die Freiheit bewahren dürfen, darauf erst zu antworten, wenn ich verstehe, was die Frage soll.

  • Die Frage hat den Grund, das ich z.B. grade in der Firma sitze und während meiner deployments nebenbei über das Forum schaue und wenn ich keinen Quellcode sehe, dann brauch ich zumindest ne optische Ansicht von dem ganzen, was der ausgangszustand ist und wie es aussehen sollte.

    Nochmal wiederholend: Javascript ist eine sehr unschöne Lösung und solange das nicht an Ajax hängen soll auch nicht angebracht, denn es soll ja immer funktionieren und nicht nur einfach wenn alles stimmt.

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ