Dropdown erstellen mittels zweier Variablen

kayleigh11

Grünschnabel
Hallo,

es gibt wohl unzählige Threads zu dropdowns, das passende habe ich aber nicht gefunden.

Und zwar möchte ich ein Dropdownfeld einbauen welches alle Jahreszahlen von 1900 bis 2009 anbietet.

Möchte dies aber nicht als Liste machen wie etwa:

<option value='1911' >1900</option>
<option value='1912' >1901</option>
<option value='1913' >1902</option>
.... usw.

Die Liste hätte ja über 100 Zeilen.
Wie löse ich dies am Besten durch Angabe zweier Variablen?
Also etwa $jahrstart=1900 und $jahrende=2009.

Muss doch irgendwie gehen, mit javascript oder so?

Danke, Thomas
 
Hi,

mit der Methode createElement kannst du ein HTML-Element erstellen.

Mit new Option(text, value) erstellst du die Optionen. Diese werden in en options-Array des Select-Feldes eingehängt.

Beispiel:
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<script type="text/javascript">
<!--
function createSelect(objCont, intStart, intEnd){
  // Select erstellen
  var objSel = document.createElement("select");

  // Gewünschten Bereich durchlaufen
  for(var i=intStart; i<=intEnd; i++){
    // Neue Option erstellen und einhängen
    objSel.options[objSel.options.length] = new Option(i, i);
  }

  // Select-Gruppe in "Container" einhängen
  objCont.appendChild(objSel);
}
-->
</script>
</head>
<body>
<button onclick="createSelect(document.getElementById('containerID'), 1900, 2009);">Select</button>
<div id="containerID"></div>
</body>
</html>

Die Funktion erwartet folgende Argumente:
  • objCont - (object) Referenz auf das Element, das die Select-Gruppe aufnehmen soll
  • intStart - (integer) Startwert
  • intEnd - (integer) Endwert
Ciao
Quaese
 
Hallo,

super, danke, im Prinzip ist es schon das waonach ich suchte.
Nur, der Button ist etwas störend...
Das Dropdownfeld sollte halt schon sichtbar sein wenn die Seite geladen wird.
Kann man das ändern?
 
Hallo,

tatsächlich hatte ich das gerade gemacht, hat auch geklappt.
(<body onload...)

Vielen herzlichen Dank, wieder was dazu gelernt...

Gruß, Thomas
 

Neue Beiträge

Zurück