2 Auswahl Felder sollen auf die selbe Auswahlliste zugreifen

mig40soft

Grünschnabel
Hallo,

ich versuche ein Formular für einen Testbericht zu erstellen.
Der User soll über 2 Auswahlfelder (später auch mehr) auf eine Auswahlliste mit ca. 165 Möglichkeiten zugreifen können.

1. Idee: Mein Gedanke ist, daß diese Auswahlliste eine extra Datei ist, die beim Formular start den beiden Auswahlfeldern bereitgestellt wird.

2. Idee: (unschön, da die Formular.htm dann sehr groß wird) Die Auswahlliste einmal im Formular definieren und dann über die Auswahlfelder darauf zugreifen.

Zur Info: Ich mache gerade die ersten Schritte mit HTML und habe mit Selfhtml schon das komplette Formular hinbekomme. Javascript Wissen ist noch nicht vorhanden.
Wie ich eine Auswahlliste erstelle, ist klar
Hier ein Bsp. Ausschnitt worauf die Auswahlfelder zugreifen sollen

<form action="select.htm">
<p>
<select name="auswahl1" size="1">
<option>1 Visual Check</option>
<option>2 Assembly/Disassembly</option>
<option>3 Function test</option>
<option>165 Letzter test</option>
</select>
</p>
</form>
Vielleicht muss die Auswahlliste auch anders erstellt werden. Bin offen für alles.
Ich hoffe, das ich mein Problem deutlich gemacht habe und Ihr mir helfen könnt.

Gruß
Mig40soft
 
Du willst also zwei <select>-Elemente haben die jeweils die gleichen 165 Elemente haben, richtig?

Ich bin nicht so der Javascript-Freund, aber hier eine Lösungsvariante:

1. Deine 165 Optionen schreibst und z.b. in eine text.txt, pro Zeile eine Option

2. HTML- und Javascriptcode (ich hab die wichtigen Teile etwas kommentiert):

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
  var xmlHttp = null;
  if (typeof XMLHttpRequest != 'undefined') {
      xmlHttp = new XMLHttpRequest();
  }
  if (!xmlHttp) {
      try {
          xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
      } catch(e) {
          try {
              xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
          } catch(e) {
              xmlHttp  = null;
          }
      }
  }
  if (xmlHttp) {
      //Lade Textdatei
      xmlHttp.open('GET', 'text.txt', true);
      xmlHttp.onreadystatechange = function () {
          if (xmlHttp.readyState == 4) {
              //Erstelle Formular              
              document.write("<form><p>");
			  
			  //Gib den zwei Listen einen Namen
			  selectArray = new Array('auswahl1','auswahl2');
              
              //Definiere Variable für den Inhalt der Textdatei
              meinArray = new Array();
              
              //Lade die Textdatei in das Array, je Zeile in der Textdatei wird ein Element in dem Array belegt
              meinArray = xmlHttp.responseText.split("\n");
              
              //Führe folgende Aktion für jede Liste aus
              for (c in selectArray)
              {
              	  //Anfang der Liste erstellen
	              document.write("<select name=\"" + selectArray[ c] + "\">");
	              
	              //Hier wird jedes einzelne Auswahlelement erstellt
	              for (i in meinArray)
	              {
	              	document.write("<option>" + meinArray[i] + "</option>");
	              }
	              
	              //Das Ende der jeweiligen Liste
	              document.write("</select>");
	          }
	          
	          //Das Ende des Formulars
              document.write("</p></form>"); 
          }
      };
      xmlHttp.send(null);
  }
</script>
<title></title>
</head>
<body>
</body>
</html>
(Basiert grundlegend auf dem hier.)

Das ganze ist "quick and dirty" und stellt dich sicher vor neue Probleme.
Vorteil bei der Version ist, dass es das komplette Formular erstellt.
Nachteil, du willst sicher mehr als nur die zwei Auswahllisten in dem Formular haben, also noch Text, Submitbutton usw. die müsste man hier auch mit Javascript coden.

Besser wäre die Variante, dass man den durch Javascript erzeugten Code direkt in ein Formular läd.
 
Zuletzt bearbeitet:
Hallo raikkonentk,

danke für deine schnelle Antwort.
Puuh, da hast du mir einen Code vor den Latz geknallt, den muß ich erstmal verdauen.

Der Code funktioniert genau so, wie ich es mir vorgestellt habe.
Dafür einen fetten Dank.

Ich hatte nur nicht damit gerechnet, daß man dafür so ein Fass aufmachen muß.

Zu den Feinheiten:
Ich vermute mal, daß ich den Code in den Kopf meines Formulars einsetzen muß.
Die Auswahlfelder sind bei mir in einer Tabelle untereinander angeortnet.
Ich werde morgen versuchen, das script in mein Formular einzubauen.

Besser wäre natürlich, wenn ich das script als .js abspeichern könnte und dieses dann bei den Auswahlfeldern geladen wird.

Gruß
Mig40soft
 
Es geht auch einfacher, schneller und besser ...
Zum Beispiel mit PHP. Aber wenn gerade erst mit HTML anfängst, wäre das vielleicht zu viel des Guten.
 
Nach längerem Recherchieren,

habe ich jetzt eine elegante Lösung gefunden.
Mit <iFrame> lade ich meine Select.htm in die Tabelle des Formulars.

Das ist so simple und einfach. Hurra

Gruß
Mig40soft
 
Zurück