<select><options>einfügen löschen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • <select><options>einfügen löschen

    Hallo Profis!
    Ich habe ein Problemchen. Ein einfaches script, der mir Kopfschmerzen bereitet.
    Es sollte bei einem Auswahl im select, in einem anderen unterschiedliche options laden.
    So weit funzt es auch bei der 2 und 3 option, bei 1 option spinnt er total. Woher er die Werte nimmt ist mir ein Rätsel.. Besser gesagt wieso löscht er bei der 1 Auswahl nicht alle options?

    PHP-Code:
    <select onchange="auswahl(this.options[this.selectedIndex].value);">
        <
    option value="">Auswahl
        
    <option value="ru">ru
        
    <option value="de">de
    </select>

    <
    select name="sprache" id="sprache">
        <
    option value="">auswahl
    </select>

    <
    script>

    var 
    ru = new Array("ruauswahl","rutest1","rutest2","rutest3","auswahl2","rutest4","rutest5","rutest6");
    var 
    de = new Array("deauswahl","detest1","detest2","detest3","detest4");
    var 
    leer = new Array("leerauswahl");
    function 
    auswahl(option)
    {
        var 
    arrays = new Array();
        
    //alert(document.getElementById('sprache').length);
        
    for(var p=0p<document.getElementById("sprache").lengthp++)
        {
            
    document.getElementById("sprache").options[p]=null;//löscht alle options
        
    }
        
        switch(
    option)
        {
        case 
    "ru":
        
    arrays ru;
    //alert("ru");
        
    break;
        case 
    "de":
        
    arrays de;
    //alert("de");
        
    break;
        default:
        
    arrays leer;
        break;
        }
    //auswahl von werten array
        
        
    for(var i=0i<arrays.lengthi++)
        {
            var 
    neuvalue = new Option(arrays[i],arrays[i],false,false);
            
    document.getElementById('sprache').options[i] = neuvalue;//erstellen neu optionsfelder
        
    }

    }
    </
    script

  • #2
    bei 1 option spinnt er total
    Meinst bei Auswählen von "<option value="">Auswahl"?
    Und schließ doch mal die </option> Tags
    "I don't want to belong to any club that would accept me as a member."

    Groucho Marx

    Kommentar


    • #3
      du kannst ein select-feld ganz einfach leeren:
      PHP-Code:
      document.getElementById("sprache").length 0;
      // oder
      document.formularname.selectfeld.length 0
      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        Wenn du dir script kopierst und ausführst wist du schon sehen was ich meine.
        </option> hat damit nichts zu tun.
        Es ist folgendes:
        Bei ru löscht er vorhandene <option>en, lädt array ru und erstellt neu <optionen>.
        Bei de Auswahl passiert das gleiche nur de array wird geladen.
        Aber bei Auswahl leer soll er alle vorhandene löschen und leer array laden. Tut er auch nur löscht er nicht alle <option>en. Es bleiben noch von vorherigen array <optionen>. Wieso? Was soll ich dagegen tun?

        Kommentar


        • #5
          hast meinen thread wohl noch nicht gelesen:
          PHP-Code:
          document.getElementById("sprache").length 0
          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Hallo Kropff!
            Das hat funktioniert, ohne for schleife. Prima Tipp. Was ich aber nicht verstehe, wieso zum Kukuk mit der schleife nicht funktioniert?

            Kommentar


            • #7
              weil sich document.getElementById('sprache').length in der schleife jedesmal ändert. kannst du so herausfinden:
              PHP-Code:
              for(var p=0p<document.getElementById("sprache").lengthp++)
              {
                  
              alert(document.getElementById('sprache').length);
                  
              document.getElementById("sprache").options[p]=null;//löscht alle options

              peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                Ok. Danke. Ein Denkfehler.

                Kommentar


                • #9
                  OffTopic:
                  ist mir auch schon passiert. und habs auch hier gepostet

                  peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar

                  Lädt...
                  X