romero: Schleife fortlaufen wenn Funktion fertig ist

Beitrag lesen

hallöchen auch.

hab da wieder mal ein problem.ich möchte anhand einer schleife eine funtion starten,diese funktion ausführen und erst dann die schleife wieder weiterlaufen wenn da ein button gedrückt wurde.

speziell geht es dadrum,das ich,je nach dem wie groß ein bestimmtes array ist,eine schleife erstellt habe wo als erstes das array ausgelesen wird und dann für jede stelle im array eine funktion gestartet wird,wo ich dann mittels einem button einen wert (input type="text") erstelle,welcher dann zurückgegeben und in einem neuen array gespeichert werden soll.

es geht nämlich darum das anhand dieser schleife eine exceltabelle ausgelesen wird,wo aber ähnliche tabellebblätter vorhanden sind (z.b. bereiche ber_A070 / ber_A070_11 / ber_A070_12 / ... ). angegeben habe ich aber nur A070 (laut einer auswahlliste).das suchen in der excelliste klappt,auch das ändern mittels diesem button bzw das speichern in einem neuen array.aber nur wenn ich ein bereich angegeben hab (z.b. new Array(A070) ).

nun kann es aber vorkommen das 2 oder mehrere bereiche zu einem großen gehören ( z.b. B010,C020,D030 ). da ich aber nich möchte das ich für jeden einzelnen bereich diese funktion schreiben möchte,dachte ich da an eine schleife,wo sozusagen jeder einzelner bereich aus dem array ausgelesen (new Array(B010,C020,D030) ) und diese besagte funktion gestartet wird.

nur bisher läuft die schleife komplett durch (so lange wie "new Array.length") aber er stoppt sozusagen nicht an der stelle wo die funktion aufgerufen wird bzw der button zum einsatz kommt.der "button" soll sozusagen den neuen wert setzen und die schleife fortsetzen.

hier mal das was ich versucht hab:

//--> hier werden je nach dem wieviele bereiche ich gewählt hab,ein neues array erzeugt  
  
					if( Bereich1Value != "--" && Bereich2Value == "--" && Bereich3Value == "--" )  
					{  
						x.push( Bereich1 );  
						y.push( Bereichsnummer1 );  
					};  
  
					if( Bereich1Value != "--" && Bereich2Value != "--" && Bereich3Value == "--" )  
					{  
						x.push( Bereich1, Bereich2 );  
						y.push( Bereichsnummer1, Bereichsnummer2 );  
					};  
  
					if( Bereich1Value != "--" && Bereich2Value != "--" && Bereich3Value != "--" )  
					{  
						x.push( Bereich1, Bereich2, Bereich3 );  
						y.push( Bereichsnummer1, Bereichsnummer2, Bereichsnummer3 );  
					};  
  
					var i = 0;  
//--> hier diese besagte schleife  
					while( i < x.length )  
					{  
//-->festlegen der exceltabelle + tabellenblätter  
						if( Flugzeugtyp == "A318" || Flugzeugtyp == "A319" || Flugzeugtyp == "A320" || Flugzeugtyp == "A321" )  
						{  
							var infile = "G:/Hamburg_Original/STUECKLISTE/" + FLT + "/" + Flugzeug + ".xls";  
							var startSheet = "Ber_" + x[i] + y[i];  
						};  
  
						if( Flugzeugtyp == "A330-200" || Flugzeugtyp == "A330-300" || Flugzeugtyp == "A340" || Flugzeugtyp == "A340-500" || Flugzeugtyp == "A340-600" )  
						{  
							var infile = "G:/Hamburg_Original/STUECKLISTE/" + FLT + "/" + Flugzeug + "_SK" + Sek + ".xls";  
							var startSheet = "Ber_" + x[i] + y[i];  
						};  
  
						if( Flugzeugtyp == "A330-200 Frachter" )  
						{  
							var infile = "G:/Hamburg_Original/STUECKLISTE/" + FLT + "/" + Flugzeug + "_SK" + Sek + ".xls";  
							var startSheet = "Ber_" + x[i] + y[i];  
						};  
						  
//-->die exceltabelle auslesen und anzahl bzw ähnliche bereiche in ein array schreiben  
						z = Excel_Liste_Überprüfung( infile, startSheet );  
//--> das klappt :)  
						var Anzahl_Tabellenblatt = z.splice( 0, 1 );  
						var Tabellenblatt = z;  
//-->problem beginnt hier:test ist die variable welche durch die funktion erstellt wird(rückgabewert des durch den button gesetzen wert)  
						test = Alternativtext_Eingabe( Anzahl_Tabellenblatt, Tabellenblatt, x[i], y[i] );  
  
						i++;  
					};

und hier die funtion alternativtext_eingabe():

		function Alternativtext_Eingabe( Anzahl_Tabellenblatt, Tabellenblatt, Bereich, Bereichsnummer )  
		{  
			if( Anzahl_Tabellenblatt > 1 )  
			{  
				if( Tabellenblatt.length > 3 )  
				{  
//--> ausgabe in meinem script( wo man den wert eingeben kann) bzw ein- und ausblenden diverser zeilen  
					var tab = " " + Bereich + Bereichsnummer + " sowie " + ( Tabellenblatt.length - 1 ) + " ähnliche Bereiche mit " + Bereich + Bereichsnummer;  
  
				} else { var tab = Tabellenblatt; };  
  
				document.getElementById( "STL_Meldungen_Alt_Text" ).style.display = "inline";  
				document.getElementById( "STL_Meldungen_Alt_Text_Links" ).style.display = "none";  
				document.Auswahl.Start.disabled = true;  
				document.getElementById( "STL_Meldungen_Alt_Text" ).disabled = false;  
				document.getElementById( "STL_Meldungen_Alt_Text_Links" ).disabled = true;  
  
				document.getElementById( "STL_Meldungen_Alt_Text" ).innerHTML = '<p class="STL_Meldungen_Überschreiben">Folgende Bereiche wurden gefunden:<font color="darkred">' + tab + '</font>. Bitte Alternativnamen eingeben: <input type="text" id="Überschreiben_Alt_Text" value="" size="10" maxlength="10" class="STL_Meldungen_Button"></input> <input type="button" id="Alt_Text" value="OK" class="STL_Meldungen_Button"></input>';  
				document.getElementById( "STL_Meldungen_Alt_Text_Links" ).innerHTML = '<p class="STL_Meldungen_Überschreiben_Links">Ihr Alternativtext: <input type="text" id="Überschreiben_Alt_Text_Links" value="" size="20" maxlength="10" class="STL_Meldungen_Button_Links"></input> <input type="button" id="Alt_Text_Links" value="OK" class="STL_Meldungen_Button_Links"></input>';  
  
				document.getElementById( "Überschreiben_Alt_Text" ).value = Bereich + Bereichsnummer;  
  
				//------------------------------------------------------------//  
				//-- Alternativ - Text - Eingabe (Bereich + Bereichsnummer) --//  
				//------------------------------------------------------------//  
//-->hier wird die funktion gestartet wenn man auf dem button drückt(neuen wert setzen)  
				document.getElementById( "Alt_Text" ).onclick = function() {  
  
					var Alt_Text = document.Auswahl.Überschreiben_Alt_Text.value;  
					var Alt_Text_Bereich = Bereich;  
					var Alt_Text_Bereichsnummer = Alt_Text.substr( Alt_Text_Bereich.length, Alt_Text.length );  
  
					Bereich = Alt_Text_Bereich;  
					Bereichsnummer = Alt_Text_Bereichsnummer;  
  
					document.getElementById( "Überschreiben_Alt_Text_Links" ).value = Bereich + Bereichsnummer;  
				};  
			};  
//-->neuen wert zurückgeben  
			return [ Bereich, Bereichsnummer ];  
		};

wie kriege ich also die schleife dazu,erst weiter zu laufen wenn der button gedrückt wurde?

habe versucht das "i" mit in die funktion alternativtext_eingabe zu übernehmen und bei der "button-funktion" zu erhöhen aber da muss ich das script gewaltsam abbrechen da es eine unendlich-schleife wird.keine ahnung wieso,da ich da den wert "i" ja zurück gegeben hab.

ein anderer versuch brachte die button-funktion erst nachdem die komplette schleife durchlaufen war.

könnt mir bitte tipps und ratschläge geben?

vielen dank
lg romero