Datum in ein Pull Down Menue
Jörg
- javascript
Hallo,
danke erstmal für die Hilfe von gestern, das mit den aktuellen Monaten funktioniert nun, nun wollte ich das selbe script für die Jahre verwenden:
<form name=auswahl>
div align="center">
<select name=jahr size="1">
<option>1999</option>
<option>2000</option>
<option>2001</option>
<option>2002</option>
<option>2003</option>
<option>2004</option>
<option>2005</option>
</select>
</div>
<script language="javascript">
j = new Date();
jm = j.getYear();
document.auswahl.jahr.options[jm].selected = true;
</script>
</form>
doch leider tut sich da garnichts ?????
Wieso ?????
Tschau Jörg
<form name=auswahl>
div align="center">
<select name=jahr size="1">
<option>1999</option>
<option>2000</option>
<option>2001</option>
<option>2002</option>
<option>2003</option>
<option>2004</option>
<option>2005</option>
</select>
</div>
<script language="javascript">
j = new Date();
jm = j.getYear();
document.auswahl.jahr.options[jm].selected = true;
»» </script>
</form>
Hallo Jörg,
mit options[jm] greifst Du auf ueber den Index zu, das heißt: ausgehend von dem heutigen Datum, Du moechtest das 1999ste Element aus Deiner DropDownListe ansprechen, welches ist das denn. besser waere es, Du schreibst eine kurze Schleife, die von 0 bis maximal (document.auswahl.jahr.length - 1) laeuft und konkret den Wert von String(jm) mit document.auswahl.jahr.option[Laufvariable].text vergleicht und wenn die Werte uebereinstimmen den Befehl document.auswahl.jahr.options[jm].selected = true; ausfuehrt. Ich hab das bewusst jetzt mal als Text und nicht als Funktion formuliert, da ich in Deinem gestrigen Posting erkannt habe, dass Du auch gerne Deine Loesungen findest und nicht vorgefertigt Loesungen uebernehmen willst.
Noch ein kleiner Tip: Es ist guter Stil und, falls mal einer mit einem Oldtimer-Browser kommt auch sehr wichtig hinter dem einleitenden SCRIPT-Tag ein Kommentar-Block einzuleiten mit <!-- und den dann vor dem schliessen des SCRIPT-Block mit //--> zu beenden.
Bis danndann
Michael N.
mit options[jm] greifst Du auf ueber den Index zu, das heißt: ausgehend von dem heutigen Datum, Du moechtest das 1999ste Element aus Deiner DropDownListe ansprechen, welches ist das denn. besser waere es, Du schreibst eine kurze Schleife, die von 0 bis maximal (document.auswahl.jahr.length - 1) laeuft und konkret den Wert von String(jm) mit document.auswahl.jahr.option[Laufvariable].text vergleicht und wenn die Werte uebereinstimmen den Befehl document.auswahl.jahr.options[jm].selected = true; ausfuehrt. Ich hab das bewusst jetzt mal als Text und nicht als Funktion formuliert, da ich in Deinem gestrigen Posting erkannt habe, dass Du auch gerne Deine Loesungen findest und nicht vorgefertigt Loesungen uebernehmen willst.
Noch ein kleiner Tip: Es ist guter Stil und, falls mal einer mit einem Oldtimer-Browser kommt auch sehr wichtig hinter dem einleitenden SCRIPT-Tag ein Kommentar-Block einzuleiten mit <!-- und den dann vor dem schliessen des SCRIPT-Block mit //--> zu beenden.Bis danndann
Michael N.
Danke für deine Hilfe, aber ich habe es etwas anderst geregelt, nachdem du mir gesagt hast, das ich auf das 1999 element zugreife, habe ich einfach 1999 abgezogen, sieht momentan so aus:
<script language="javascript">
j = new Date();
jm = j.getYear();
jy = jm-1999
document.auswahl.jahr.options[jy].selected = true;
</script>
Ist wahrscheinlich nicht elegant aber einfach!!
Nun ein weiteres Problem ? der IE5 macht dies wunderbar, doch macht Netscape überhaupt keine Anstalten das Jahr zu übernehmen. Den Monat nimmt er ?? Wieso ??
Es ist zwar nett, das du mir Hilfen in Text gibst, doch bin ich erst am Anfang einer Java karriere und könnte auch mal einige Codes vertragen!!
Also weißt du vielleicht warum Netscape sich streubt ???
Jörg
Hallo Joerg,
<script language="javascript">
j = new Date();
jm = j.getYear();
jy = jm-1999 *1
document.auswahl.jahr.options[jy].selected = true;
»» </script>
Ist wahrscheinlich nicht elegant aber einfach!!
Ehrlich gesagt, mir straeuben sich die Haare.
Nun ein weiteres Problem ? der IE5 macht dies wunderbar, doch macht Netscape überhaupt keine Anstalten das Jahr zu übernehmen. Den Monat nimmt er ?? Wieso ??
Versuch einfach mal die Zeile, die mit *1 gekennzeichnet ist mit einem Semikolon abzuschliessen, der Netsi ist halt etwas strenger (zum Glueck).
Es ist zwar nett, das du mir Hilfen in Text gibst, doch bin ich erst am Anfang einer Java karriere und könnte auch mal einige Codes vertragen!!
Nagut, dann geb ich Dir mal eine Funktion:
function SelectItem(SelectBox, Item, Type)
{
var lv=0;
for (lv=0;(lv < SelectBox.options.length);lv++)
{
if (Type == "TEXT")
{
if (SelectBox.options[lv].text == Item)
{
SelectBox.options[lv].selected = true;
return true;
}
}
else
{
if (Type == "VALUE")
{
if (SelectBox.options[lv].value == Item)
{
SelectBox.options[lv].selected = true;
return true;
}
}
else
{
return false;
}
}
}
return false;
}
Die kannst Du dann in Deinem Fall folgendermassen aufrufen:
<script language="javascript">
<!--
... (aufzurufende JavaScript-Funktionen) ...
j = new Date();
jm = j.getYear();
if ( SelectItem(document.auswahl.jahr, String(jm), "VALUE") != true)
{
... (Deine Fehlerbehandlung, falls das ermittelte Jahr nicht in Deiner DropDown-Liste ist.) ...
}
//-->
</script>
Ich hoffe ich konnte Dir damit helfen.
Bis danndann
Michael N.
Hallo,
ich habe den ; eingefügt, ist aber nicht besser geworden. Nun was ganz tolles. Auf einem anderen Rechner mit Netscape läft alles, nur bei mir nicht. Kann es an der Konfiguration von Netscape liegen? Und wenn was muß man einstellen?
Zu deinem Script, eine kleine aber doch wichtige frage habe ich noch:
Wo muß ich die function eintragen ???
Ich habe sie im Body tag drinnen gehabt, bringt fehler
ich hab sie im head tag drinnen gehabt, das gleiche
ich habe sie außerhalb von html stehen gehabt auch daß gleiche???
Wo soll das ding hin??????
Tschau Jörg
Hallo Joerg,
Zu deinem Script, eine kleine aber doch wichtige frage habe ich noch:
Wo muß ich die function eintragen ???
Ich habe sie im Body tag drinnen gehabt, bringt fehler
ich hab sie im head tag drinnen gehabt, das gleiche
ich habe sie außerhalb von html stehen gehabt auch daß gleiche???Wo soll das ding hin??????
Eigentlich ganz einfach, natuerlich in den JavaScript-Bereich und zwar am besten bevor Du sie aufrufst. Ich hatte Dir doch da eine Stelle vorgeschlagen. falls das nicht klappt, so mach folgendes: Nach dem Titel fuegst Du einen gesonderte JavaScript-Bereich ein, den Du natuerlich mit <SCRIPT language="JavaScript"> und <!-- einleitest und mit //--> und </SCRIPT> abschliesst.
Bis danndann
Michael N.
Eigentlich ganz einfach, natuerlich in den JavaScript-Bereich und zwar am besten bevor Du sie aufrufst. Ich hatte Dir doch da eine Stelle vorgeschlagen. falls das nicht klappt, so mach folgendes: Nach dem Titel fuegst Du einen gesonderte JavaScript-Bereich ein, den Du natuerlich mit <SCRIPT language="JavaScript"> und <!-- einleitest und mit //--> und </SCRIPT> abschliesst.
Bis danndann
Michael N.
Hallo Michael
dies funktioniert nicht, weder direkt vor dem Aufruf noch hinter dem Titel Tag. Weis langsam nicht mehr was ich machen soll. Wieso klappt das aber nicht mit Netscape wennich einfach subtrahiere? Microsoft hat zwar seine Macken aber in diesem Fall muß ich sagen Top IE5.
Naja wielleicht hat ja noch jemand eine idee
Jörg
Hallo Joerg,
dies funktioniert nicht, weder direkt vor dem Aufruf noch hinter dem Titel Tag. Weis langsam nicht mehr was ich machen soll. Wieso klappt das aber nicht mit Netscape wennich einfach subtrahiere? Microsoft hat zwar seine Macken aber in diesem Fall muß ich sagen Top IE5.
Langsam wird es auch fuer mich etwas raetselhaft, daher einige Fragen zur Klaerung:
1.) Vielleicht in Deinen Augen etwas abwegig, aber doch wichtig: Arbeitest Du mit einem sogenannten "WYSIWYG"-Tool wie Frontpage oder MS-Publisher? Wenn ja, mit welchem? Oder machst Du, was IMHO eindeutig bessere Ergebnis bringt mit einem anstaendigen Texteditor, mit dem Du alles direkt schreibst?
2.) Hast Du bei allen Tags, die ein Abschlusstag haben ("<TAG>" und "</TAG>"), auch das Abschlusstag gesetzt?
3.) Ist Deine TAG-Schachtelung ueberall sauber (also _nicht_: "<FORM> <TABLE> ... </FORM> </TABLE>" sondern "<FORM> <TABLE> ... </TABLE> </FORM>")? Dass ist naemlich ein Fehler, den der Netsi nicht verzeiht und den gerade Anfaenger gerne machen (leider ist der IE da zu tolerant, was zu einem schlechten Stil verfuehrt).
Noch einen Tip zur TAG-Schachtelung: Wenn Du mit einem Texteditor arbeitest, dann schreib keinen simplen Fliesstext mit Zeilenumbruechen, sondern rueck sorgfaeltig ein, dann kannst Du den geschriebenen Code leichter analysieren.
Bis danndann
Michael N.
Hallo Joerg,
dies funktioniert nicht, weder direkt vor dem Aufruf noch hinter dem Titel Tag. Weis langsam nicht mehr was ich machen soll. Wieso klappt das aber nicht mit Netscape wennich einfach subtrahiere? Microsoft hat zwar seine Macken aber in diesem Fall muß ich sagen Top IE5.
Langsam wird es auch fuer mich etwas raetselhaft, daher einige Fragen zur Klaerung:
Hallo Michael,
also ich benutze den Dreamweaver 2 um meine Seiten zu erstellen, dein Code habe ich aber in der HTML eingefügt. Soweit ich es überprüft habe sind alle Tags in Ordnung. Ich bin zwar noch anfänger in Java, aber nicht umbedingt in HTML oder was das bedienen von Anständigen WYSIWYG Editorten angeht!
Jörg
Hallo Joerg,
also ich benutze den Dreamweaver 2 um meine Seiten zu erstellen, dein Code habe ich aber in der HTML eingefügt. Soweit ich es überprüft habe sind alle Tags in Ordnung. Ich bin zwar noch anfänger in Java, aber nicht umbedingt in HTML oder was das bedienen von Anständigen WYSIWYG Editorten angeht!
Entschuldigung, war halt ein Problem, was ich auch frueher mal hatte und da mir die ganze Sache erstmal anfing raetslehaft zu werden, hatte ich halt auch in diese Richtung versucht zu denken, aber wenn Du mal nach http://www.teamone.de/selfaktuell/self_forum/41436.html schaust mittlerweile habe ich den Fehler im Funktionsaufruf, den ich gemacht habe auch entdeckt, er war so primitiv, dass ich mir am liebsten die Haare ausraufen wuerde.
Bis danndann
Michael N. (der Zerknirschte in Sack und Asche)
Hallo Joerg,
function SelectItem(SelectBox, Item, Type)
{ ...}
Die ist korrekt.
<script language="javascript">
<!--
... (aufzurufende JavaScript-Funktionen) ...
»» j = new Date();
jm = j.getYear();
»» if ( SelectItem(document.auswahl.jahr, String(jm), "VALUE") != true)
Hier habe ich den Denkfehler gemacht, und nicht nach der Schnittstelle meiner Funktion gearbeitet.
Richtig muss diese Zeile heissen:
if (SelectItem(document.auswhl.jahr, String(jm), "TEXT") != true)
Die Funktion ist naemlich so geschrieben, dass Sie sowohl anhand des Values als auch anhand des Textes selektieren kann, dies wird durch den dritten Parameter gesteuert. Dabei hatte ich dann uebersehen, dass Deine Elemente nur "<option>Wert</option>" beinhalten und nicht "<option value="Wert">Wert</option>". Tut mir leid! ;..-(.
{
... (Deine Fehlerbehandlung, falls das ermittelte Jahr nicht in Deiner DropDown-Liste ist.) ...
}
//-->
</script>
Jetzt muesste es aber stimmen.
Bis danndann