Andreas Nagel: Eintrag zu einer select Liste hinzufügen

Hallo zusammen

auf meiner Seite soll eine Auswahl Liste stehen mit dieser durch das Anklicken der Einträge Funktionen ausgeführt werden sollen. Doch erst einmal sollen da ja Einträge reinkommen!

im HTML steht

	<form name="LinkDaten" method="post" onsubmit="return Check()" onreset="CloseDialog()">  
<table id="Inhalt" border="0" cellspacing="0">  
  
<tr>  
	<td style="width:170px; vertical-align:top" rowspan="9">  
<select style="width:130px; height:280px" size="20" id="Auswahl"></select>  

und im Javascript will ich nun Text einfügen:
document.getElementById("Auswahl").options[i].text ="blablabla"

doch kommt stets die ie mit der Meldung "ist null oder kein Objekt" und der FifreFox mit "TypeError" und zeigt die Zeile.

Also was mache ich bitte falsch?

Danke Gruß Andreas

  1. <table id="Inhalt" border="0" cellspacing="0">
    <tr>
    <td style="width:170px; vertical-align:top" rowspan="9">
    <select style="width:130px; height:280px" size="20" id="Auswahl"></select>

    Lager CSS in externe Dateien aus.  
      
    
    > `document.getElementById("Auswahl").options[i].text ="blablabla"`{:.language-javascript}  
    > Also was mache ich bitte falsch?  
    
    Du musst ein neues option-Element <http://de.selfhtml.org/javascript/objekte/document.htm#create_element@title=erstellen> und an dein select-Element <http://de.selfhtml.org/javascript/objekte/node.htm#append_child@title=anhängen>  
      
    MfG  
    bubble
    
    1. Hallo bubble

      Du musst ein neues option-Element und an dein select-Element anhängen

      Sorry aber das select Element existiert doch schon im hatml. Und das was ich in javascript gezeigt habe ist eine Schleife mit i das bei 0 beginnt. Und ich finde nichts anderes als das schreiben eines neuen Elements mit einem neuen Index. Ich würde gerne wissen wie ich ein Element dem select Element hinzufügen kann.

      Danke Gruß Andreas

      1. Hi,

        Ich würde gerne wissen wie ich ein Element dem select Element hinzufügen kann.

        Ja, dann lies es doch einfach nach …

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. Hallo ChrisB

          und Vielen Dank für Deine Hilfe. Doch jetzt sitze ich vor dem Problem wie ich die Einträge aus der Liste wieder herausbekomme?

          Danke Gruß Andreas

          1. Hi,

            Doch jetzt sitze ich vor dem Problem wie ich die Einträge aus der Liste wieder herausbekomme?

            Vielleicht bekommst du es hin, auch noch den nachfolgenden Abschnitt zu lesen …?

            MfG ChrisB

            --
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
            1. Hallo ChrisB

              Ja das hatte ich auch schon mal gesehen, doch will es nicht funktionieren! Es handelt sich hierbei um ein Fenster das nach Aufruf die Liste füllen und beim schließen wieder leeren soll. Es variiert auch der Inhalt der Leiste je nach Aufruf der Datei. Und jetzt ist das Problem das der Inhalt nie verschwindet. Und das bei folgenden Zeilen:

              	for (var i = 0; i < document.getElementById("Auswahl").length+1; i++)  
              	{  
              	document.getElementById("Auswahl").options[0] = null  
              	alert(i)  
              	}  
              
              

              Dank dem alert kann ich ja zuschauen wie die Zeilen verschwinden, doch wird das iframe wieder angezeigt und die Liste wird neu befüllt, sind die alten Einträge wieder zu sehen.

              Wie bekomme ich diese Einträge ganz raus so das immer nur eine Funktion neue Einträge einfügt?

              Danke Gruß Andreas

              1. Hi,

                Dank dem alert kann ich ja zuschauen wie die Zeilen verschwinden, doch wird das iframe wieder angezeigt und die Liste wird neu befüllt, sind die alten Einträge wieder zu sehen.

                Was denn plötzlich und auf einmal für ein Iframe …?

                MfG ChrisB

                --
                RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
                1. Hallo ChrisB

                  es funktioniert ja jetzt.

                  Es wird ein array in einem iframe erstellt mit den IDs der Links die in eine Formular angezeigt werden sollen. Und aus dem array heraus wird der Text in einem select gesammelt und durch das anklicken in dem select kann man ja durch den Index im array nachschauen welcher Link gemeint ist.

                  Und ich glaubte zu lesen das man für das array nur pop(), sprich ohne Index schreiben könne um es leeren zu können. Doch jetzt schreibe ich auch dieses in die Schleife und damit funktionierts. Was mich halt wundert ist dass es nie zu Fehlermeldungen kam.

                  Und jetzt schreibe ich eine while Schleife:

                  	while (document.getElementById("Auswahl").length > 0)  
                  	{  
                  	document.getElementById("Auswahl").options[0] = null  
                  	top.LinkIDs.pop(0)  
                  	}  
                  
                  

                  Doch frage ich mich ob damit für den Browser nicht viel zu arbeiten sei. Und eine rückwärz zählende Schleife wollte ich nicht hinbekommen.

                  Aber auf jeden Fall läuft es jetzt. Und danke für Deine Hilfe.

                  Gruß Andreas

                  1. Und ich glaubte zu lesen das man für das array nur pop(), sprich ohne Index schreiben könne um es leeren zu können. Doch jetzt schreibe ich auch dieses in die Schleife und damit funktionierts. Was mich halt wundert ist dass es nie zu Fehlermeldungen kam.

                    Guck dir mal http://de.selfhtml.org/javascript/objekte/array.htm#shift@title=Array.shift und http://de.selfhtml.org/javascript/objekte/array.htm#pop@title=Array.pop an ;)

                    Doch frage ich mich ob damit für den Browser nicht viel zu arbeiten sei. Und eine rückwärz zählende Schleife wollte ich nicht hinbekommen.

                      
                    for(i=array.length-1;i>=0;i--)  
                          tuIrgendwas();  
                    
                    

                    http://de.selfhtml.org/javascript/objekte/array.htm#splice@title=Array.splice kann man benutzen um Array-Elemente zu löschen. Dann brauchst du nicht mal eine Schleife. Alternativ könnte eigentlich auch ein array = []; möglich sein.

                    MfG
                    bubble

              2. Hallo ChrisB

                aber ach ja sorry. Denn der Fehler liegt in meiner Funktion welche die Einträge sammelt. Ich dachte eine Variante gehabt zu haben ein array zu leeren, doch waren dort noch die alten Einträge drin. Aber das es so nie zu einem Fehler Fehlermeldung gekommen ist, wundert mich schon.

                Aber jetzt funktionierts ja. Und dafür vielen Dank

                Gruß Andreas

  2. Hi,

    und im Javascript will ich nun ...

    und warum stellst du die Frage dann im Themengebiet Java ein?

    Ciao,
     Martin

    --
    F: Was macht ein Offizier, der in der Nase bohrt?
    A: Er holt das Letzte aus sich heraus.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Om nah hoo pez nyeetz, Der Martin!

      und warum stellst du die Frage dann im Themengebiet Java ein?

      Bei eingeschaltetem JavaScript erhält man zudem bei der Wahl einiger (3) Themenbereiche einen Hinweis:

      Hinweis: Java und JSP beziehen sich auf die plattformübergreifende Compilersprache. Bitte nicht mit JavaScript verwechseln!

      Hinweis: Vergiss nicht, Namen und Version der von dir verwendeten Datenbank anzugeben!

      Hinweis: HTTP ist das Netzwerkprotokoll für den Datenaustausch zwischen Client und Server. Bitte nicht mit HTML verwechseln!

      Matthias

      --
      1/z ist kein Blatt Papier.