Zwei Drop Down-Menüs Dynamisch

McHouse

Grünschnabel
hi, ich brauche bitte hilfe hiermit:

Ich habe zwei Drop Down-Menüs.
Land --> Deutschland, Östereich, Schweiz, Frankreich, usw...
Bundesland -->

Wenn ich im ersten Drop Down-Menü das Land auswähle soll im zweiten Drop Down-Menü die jeweiligen Bundesländer auswählbar sein...

Wie kann ich das programmieren?

PHP:
<select name="land" class="inputcont">
  <option value="" disabled>wähle ein Land</option>
  <option value="" disabled>----------------------</option>
  <option value="Deutschland">Deutschland</option>
  <option value="Östereich">Österreich</option>
  <option value="Schweiz">Schweiz</option>
</select>

<select name="bundesland" class="inputcont">
  hier die Bundesländer des ausgewählten Landes
</select>
 
Hallo,

Code:
<html>
<head>
    <script type="text/javascript">
    var bundeslaender = new Array();
    bundeslaender[0] = new Array('D1','D2','D3','D4'); //Deuschland
    bundeslaender[1] = new Array('A1','A2','A3','A4'); //Österreich
    bundeslaender[2] = new Array('S1','S2','S3','S4'); //Schweiz

    
    function setCountry(si){
      clearCountry();
      var y=parseInt(si-2);
      for(var x=0; x<bundeslaender[y].length; x++){
        var bundesland = new Option(bundeslaender[y][x],bundeslaender[y][x],false,false);
        document.form1.bundesland.options[document.form1.bundesland.length] = bundesland;
      }
    }
    
    function clearCountry(){
      var d = document.form1.bundesland;
      for(x in d){
        d.options[x] = null;
      }
    }
    </script>
</head>
<body>
<form name='form1'>
<select name="land" onchange="setCountry(selectedIndex)">
  <option value="" selected>wähle ein Land</option>
  <option value="" disabled>----------------------</option>
  <option value="Deutschland">Deutschland</option>
  <option value="Oestereich">Österreich</option>
  <option value="Schweiz">Schweiz</option>
</select>

<select name="bundesland">
  
</select>
</form>
</body>
</html>
Auf follgendes Achten:
- die Reihenfolge der Bundesländer im Array muss mit der im ersten Selectfild übereinstimmen
- parseInt(si-2): das "-2" ist nötig, weil du davor 2 "leere" Felder hast - wenn du das änderst musst du auch das "-2" ändern
- Ansonsten müssen nur doch die Namen der Formular Felder angepasst werden...

bye

//EDIT: ARGH - der IE zickt wiedermal bei for ... in rum....
 
Zuletzt bearbeitet:
Jetzt passts auch beim IE

Code:
<html>
<head>
    <script type="text/javascript">
    var bundeslaender = new Array();
    bundeslaender[0] = new Array('D1','D2','D3','D4'); //Deuschland
    bundeslaender[1] = new Array('A1','A2','A3'); //Österreich
    bundeslaender[2] = new Array('S1','S2','S3','S4','S5'); //Schweiz

    
    function setCountry(si){
      clearCountry();
      var y=parseInt(si-2);
      for(var x=0; x<bundeslaender[y].length; x++){
        var bundesland = new Option(bundeslaender[y][x],bundeslaender[y][x],false,false);
        document.form1.bundesland.options[document.form1.bundesland.length] = bundesland;
      }
    }
    
    function clearCountry(){
      var d = document.form1.bundesland;
      var y = d.length;
      for(var x=0; x<y;x++){
        d.options[0] = null;
      }
    }
    </script>
</head>
<body>
<form name='form1'>
<select name="land" onchange="setCountry(selectedIndex)">
  <option value="" selected>wähle ein Land</option>
  <option value="" disabled>----------------------</option>
  <option value="Deutschland">Deutschland</option>
  <option value="Oestereich">Österreich</option>
  <option value="Schweiz">Schweiz</option>
</select>

<select name="bundesland">
  
</select>
</form>
</body>
</html>

bye
 
Ja genau so was wollte ich haben! Danke Andreas Gaisbauer...

Kann ich da den options auch ein value geben damit ich das formular mit php weiterverarbeiten kann?
 
die options haben schon ein Value.
Code:
new Option(bundeslaender[y][x],bundeslaender[y][x],false,false)
die vier Parameter sind folgende:
1. text = angezeigter Text in der Liste
2. value = zu übertragender Wert der Liste (optional)
3. defaultSelected = true übergeben, wenn der Eintrag der defaultmäßig vorselektierte Eintrag sein soll, sonst false (optional)
4. selected = true übergeben, wenn der Eintrag selektiert werden soll (optional)

Die options haben also das "Bundesland" als wert.... oder meintest du etwas anderes?
 
Hab jetzt mal ein wenig rumexperimentiert. Was dabei rausgekommen ist steht in der Datei. Date umbenennen zu pull.php

Vielleicht könnet man das noch anders machen aber ich finds ok...
Grüsse und Danke
 

Anhänge

  • drob.txt
    10,8 KB · Aufrufe: 144
Hi,

ich würde das Script auch gerne nutzen. Allerdings weiß ich nicht ganz weiter....
Ich will mit per PHP nun in die zweite Dropdownliste füllen lassen, bzw. die Daten aus der Datenbank nehmen. Ich habe dort 3 Spalten, die unbedingt wichtig sind.
In der einen Spalte ist die id, in der anderen der gegner und in der nächsten das datum. In der zweiten Dropwdonliste soll nun das value der id entsprechen und dann als Text für jede Option dastehen Datum - Gegner.
Wie ich das nun bewerkstelligen muss, da hab ich keine Ahnung, da ich mit den Arrays nicht durchsehe bzw. sieht es für mich so aus, als ob das value dem index der Schleife entspricht.

Wäre über Hilfe dankbar.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück