• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Eingabefeld soll nach Eingabe auf verschiedene Seiten verlinken, aber wie?

Doppelherz

Neues Mitglied
Hi Leute,
hat einer zufällig eine angenehme Idee, wie ich folgendes, selbstgemachtes Problem einfach und elegant lösen kann?

Ich möchte eine CD mit vielen Videos machen. Einen Adventskalender. Jeden Tag gebe ich einen Code preis und dieser Code kann dann in einem Menü eigegeben werden und dann springt man auf die Seite hinter dem Adventstürchen. darin können dann Bilder sein oder Videos, der Inhalt ist dann die Überraschung.

Beispiel:
Ich bekomme die CD, lege sie ein, eine Seite öffnet sich mit einem einzigen Formularfeld. Ich gebe "Fremdwortgarnitur" ein und bekomme eine Fehlerseite angezeigt, dass es kein gewünschter Code ist. Ich gehe schlafen. Am nächsten Tag wache ich mit einem Zettel auf der Stirn auf, auf dem "Milchpulverersatz" steht. Ich gebe dann das Wort in das Formularfeld ein und nach einem kleinen Klick auf Enter sehe ich dann eine neue Seite mit einem Video über ein Zusammentreffen von Tom Waits und Iggy Pop aus Coffee&Cigarettes und freue mich.

Frage:
Geht das?
Wie kann ich sowas einfach machen?
Hat jemand schlaue Ideen oder sogar Verbesserungsvorschläge?
 
Hallo,
also das ist mit reinem HTML nicht möglich, aber mit einer Skriptsprache wäre das kein Problem.

Du könntest zwar JavaScript verwenden, hat allerdings den Nachteil dass der Quelltext eingesehen werden kann (und damit auch die Türchen "zu früh geöffnet" werden könnten)

PHP wäre eine Serverseitige Skriptsprache, hier kann man den Code nicht einsehen aber man braucht einen Webserver (somit bekommt man das ganze nicht auf CD...).

Fazit: Wenn es dir nichts ausmacht dass man über Umwege schummeln kann, sollte JavaScript die richtige Wahl sein.
 
Mit HTML alleine kannst Du das nicht machen. Somit hast Du schonmal das falsche Unterforum erwischt.

Eine einfache Variante wäre mittels JavaScript machbar. Das JavaScript prüft, welcher Tag ist und wählt entsprechend eine Datei von der CD aus.
Nachteil: ohne JavaScript könnte man nichts sehen. Und wenn man mal den Inhalt der CD anschaut könnte man jederzeit auf alles Zugriff haben.

Die optimale Lösung wäre wohl ein eigenes Programm dafür. Das hat dann aber rein gar nichts mehr mit Webseiten zu tun.

Und ich weiß nicht, ob ich mir so einen Zettel ankleben lassen würde ;)
 
Alles klar, schade dass es nie so einfach ist, wie in der Vorstellung. Die Idee, dass Javascript dann einfach auf das datum achtet ist super :) Ich mach mich mal darüber klug ^^
 
Ich hab da mal sowas gebastelt, wenn du allerdings noch keine Erfahrungen mit Programmiersprachen hast, wirst du das ganze evtl. noch nicht so ganz verstehen.

Das ganze funktioniert im Moment zu Testzwecken natürlich nur im November statt Dezember. Später müsste man in Zeile 8 Monat = 10 durch Monat = 11 ersetzen.

Ich hoffe das Hilft dir, aber: Alle Angaben ohne Gewähr ;)
HTML:
<html>
<head><title>Adventskalender</title>
<script type="text/javascript">
var date = new Date(); //Das aktuelle Datum
var Tag = date.getDate(); //Der aktuelle Tag
var Monat = date.getMonth(); //Der aktuelle Monat (Januar = 0, Februar = 1 usw.)
 
if(Monat == 10) //Wenn Monat = 10 (Also November, müsste man dann noch auf 11 ändern)
{
 switch (Tag) {
 case 1:
  window.location = "seite1.html";
  break;
 case 2:
  window.location = "seite2.html";
  break;
 case 3:
  window.location = "seite3.html";
  break;
 case 4:
  window.location = "seite4.html";
  break;
 case 5:
  window.location = "seite5.html";
  break;
 case 6:
  window.location = "seite6.html";
  break;
 case 7:
  window.location = "seite7.html";
  break;
 case 8:
  window.location = "seite8.html";
  break;
 case 9:
  window.location = "seite9.html";
  break;
 case 10:
  window.location = "seite10.html";
  break;
 case 11:
  window.location = "seite11.html";
  break;
 case 12:
  window.location = "seite12.html";
  break;
 case 13:
  window.location = "seite13.html";
  break;
 case 14:
  window.location = "seite14.html";
  break;
 case 15:
  window.location = "seite15.html";
  break;
 case 16:
  window.location = "seite16.html";
  break;
 case 17:
  window.location = "seite17.html";
  break;
 case 18:
  window.location = "seite18.html";
  break;
 case 19:
  window.location = "seite19.html";
  break;
 case 20:
  window.location = "seite20.html";
  break;
 case 21:
  window.location = "seite21.html";
  break;
 case 22:
  window.location = "seite22.html";
  break;
 case 23:
  window.location = "seite23.html";
  break;
 case 24:
  window.location = "seite24.html";
  break;
 default:
  alert("Weihnachten ist dieses Jahr leider schon vorbei.");
  break;
 }
}
</script>
</head>
<body>
</body>
</html>
 
Zuletzt bearbeitet:
wow, das hätte ich auch mit switch machen können? Wäre dann auch eine nette Möglichkeit gewesen. Ich habe es nun so zusammen gebastelt:

HTML:
<html> 
<head>
<title>Adventskalender</title>  
<script Language="JavaScript">

function ZeitDatum () {
        //aktuelles Datum laden
        Jetzt = new Date();
        Tag= Jetzt.getDate();
        Monat= Jetzt.getMonth()+1;
        Jahr= Jetzt.getYear();
        if ((Jahr > 99) && (Jahr < 1900)) Jahr += 1900;

        //Datum mit Adventskalender abgleichen
        if((Tag == 19)&&(Monat == 11)&&(Jahr == 2010) ) { 
                top.location.href='http://google.com'; 
        } 
        else if((Tag == 21)&&(Monat == 11)&&(Jahr == 2010) ) { 
                top.location.href='http://benm.at'; 
        }
        //Fehleranzeige
        else {
            top.location.href='http://web.de';
        }
          Timer = setTimeout("ZeitDatum()",1000);
}
</script>
</head> 
<body> 
</body> 
</html>
Welche Methode kann ein Browser schneller errechnen?
 
Hi,
Welche Methode kann ein Browser schneller errechnen?
Der switch sollte eigentlich etwas schneller gehen.

Die Ausführungsgeschwindigkeit ist aber eigentlich eher unwichtig, da die Differenz wahrscheinlich nur Bruchteile einer Sekunde beträgt.

Der Hauptvorteil der switch-Variante liegt natürlich darin, dass es wesentlich weniger schreibarbeit ist (und auch etwas übersichtlicher)
 
Die switch Lösung in dem obigen Fall ist überflüssig und über dimensoniert. Das wäre einfacher möglich.

Auch deine Lösung ist nicht optimal.

1. Es fehlt ein DOCTYPE, was heutzutage nicht sein sollte, da du den Browser damit in den Quirksmodus zwingst.
2. das language Attribut ist seit 1998 "unerwünscht", stattdessen wurde damals das Pflichattribut type eingeführt. Du solltest dir dringend eine aktuellere Dokumentation besorgen.
3. globale Variabeln sollten unbedingt vermieden werden, sind in deinem Beispiel auch nicht notwendig.
4. Es dürfte mittlerweile keinen Browser mehr geben, der nicht SELFHTML: JavaScript / Objektreferenz / Date kennt (die Verbreitung der Browser IE 3 oder Netscape 3 dürfte gegen null gehen)

und an sich ist die Logik seltsam, da du auf jeden Fall die Seite wechselst und versucht danach noch einen Timeout zu setzen, was aber nicht mehr funktionieren dürfte, da dieser beim Wechsel der Seite gelöscht wird.

HTML:
<!doctype html>
<html>
<title>Adventskalender</title>  
<script type="text/javascript">
function ZeitDatum () {
        //aktuelles Datum laden
        var jetzt = new Date();
        var tag= jetzt.getDate();
        var monat= jetzt.getMonth() + 1;
        var jahr= jetzt.getFullYear();

        //Datum mit Adventskalender abgleichen
        if( jahr == 2010 && tag == 19 && monat == 11) { 
                top.location.href = 'http://google.com'; 
        } else if(jahr == 2010 && tag == 21 && monat == 11) { 
                top.location.href='http://benm.at'; 
        } else {//Fehleranzeige
                top.location.href='http://web.de';
        }
}
</script>
</head> 
<body> 
</body> 
</html>
 
Wenn die Switch überdimensioniert und meine Schreibweise zu altmodisch ist, was hätte ich dann nehmen sollen? Letzten Endes ist die CD nun auf postalem Weg und wird rechtzeitig zum 1.Dezember auf das wesentliche verlinken, den Inhalt ^^ Also auch wenn es schlampig geschrieben ist, es funktioniert ^^ ( Mein erstes Javascript ) Bei komplexeren Dingen werde ich dann die aktuelle Schreibweise verwenden, versprochen ;)
 
Hallo Zusammen,

hier möchte ich nochmal kurz was zu meiner Verteidigung sagen :lol:

Die switch Lösung in dem obigen Fall ist überflüssig und über dimensoniert. Das wäre einfacher möglich.

Wie wäre es denn einfacher möglich, wenn ich alle 24 Tage abfragen möchte? (Ausser vielleicht, dass ich alle Seiten nach dem aktuellen Tag benenne, und dann z. B. auf 'seite' + tag + '.html' oder so weiterleite)

1. Es fehlt ein DOCTYPE, was heutzutage nicht sein sollte, da du den Browser damit in den Quirksmodus zwingst.
Ich habe den Doctype übrigens nur der Übersichtlichkeit halber weg gelassen, da es mir Primär um den JavaScript-Code ging ;)

rexini schrieb:
Und warum genau geht PHP nicht auf ner CD?
Klar kann ich nen Webserver auf ne CD packen, aber warum sollte ich es so übertreiben wenn ich das ganze auch mit einer Clientseitigen Skritpsprache machen kann?
Aber diese Möglichkeit hätte natürlich auch nicht ganz unerwähnt bleiben sollen...

Wollte ich nur gesagt haben, und ich hoffe die Empfänger freuen sich über ihren Adventskalender!


Schönes Adventswochenende noch
 
Wie wäre es denn einfacher möglich, wenn ich alle 24 Tage abfragen möchte? (Ausser vielleicht, dass ich alle Seiten nach dem aktuellen Tag benenne, und dann z. B. auf 'seite' + tag + '.html' oder so weiterleite)
Du sagst es. Oder die Namen in ein Array speichern und über den Index darauf zugreifen.
 
Ich möchte nur nebenbei noch mitteilen dass der Adventskalender sehr gut ankommt ;)
ich hoffe nebenbei, dass ihr auch jeden Tag fleißig ein Türchen öffnen dürft :)
 
Zurück
Oben