online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon Romero vom 28.01.2022, 20:03 Options

Scripthilfe für verschiedene Anwendungszwecke

Hallo liebe Gemeinde,

ich muss gleich sagen, dass sich mein Thema um was größeres dreht. D.h. das ich hier rüber mehrere Anwendungsziele versuche detaliert dazustellen, wo ich bisher keine oder nur dürftige Antworten gefunden hab.

Es geht um es kurz zu sagen, um einen Script (wird als HTML-Applikation *.hta gespeichert), welches mir erleichtert, Material-Stücklisten zu erstellen. Man wählt 3 Kategorien aus, gibt eine 3-stellige Nummer an und das Script gibt dann (geknüpft an verschiedenen Bedingungen und weiteren Auswahlmöglichkeiten, wie z.B. "Neu" oder "Aktualisierung") eine *.txt mit entsprechendem Inhalt aus.

...


Antwort schreiben

Antwort 1 von Romero vom 28.01.2022, 20:05 Options

...
Hier nun der Haupt-Script:

<html>
<head>
	<title>Stuecklistenscript</title>
	<HTA:APPLICATION ID="RolandRaue" APPLICATIONNAME="RolandRaue" SCROLL="yes" SINGLEINSTANCE="no"/>

	<style type="text/css">
		body { background-color:lightblue; font-family:Times; font-size:14px; }
		table { height:650px; width:1020px; border:3px; border-style: outset; }
		td { border:0px solid black }
		div { width:1000px; height:380px; margin:0px; border:2px; border-style: inset }
		.rollbalken { overflow:scroll; overflow-x:hidden }

	</style>
	<script type="text/javascript" src="Bereichsauswahl.js"></script>
	<script type="text/javascript" src="LinkedSelection.js"></script>
	<script language="javascript" type="text/javascript">
		<!--

		//LinkedSelection wird definiert und entsprechend ausgegeben

		function ergebnisZeigen( selected )
		{
			if( selected.length )
			{

				var sel = '';
				var val = '';
				var txt = '';
				for( var i = 0; i < selected.length; i++ )
				{
					sel += ( i>0 ? ' &rarr; ' : '') + selected[i].id;
					val += ( i>0 ? ' &rarr; ' : '') + selected[i].value;
					txt += ( i>0 ? ' &rarr; ' : '') + selected[i].text;
				}

			}
		}

		window.onload = function()
		{
			var vk = new LinkedSelection( [ 'FLT', 'Sektion', 'Bereich1' ], ergebnisZeigen, Bereich1Auswahl );
		}


		//Übernehmen-Funktion wird geprüft und ausgegeben, samt Fehlermeldungen

		function Übernehmen()
		{
			//Variablen festlegen

			var FlugzeugtypText = document.Auswahl.FLT.options[document.Auswahl.FLT.selectedIndex].text;
			var FlugzeugtypValue = document.Auswahl.FLT.options[document.Auswahl.FLT.selectedIndex].value;
			var SektionText = document.Auswahl.Sektion.options[document.Auswahl.Sektion.selectedIndex].text;
			var SektionValue = document.Auswahl.Sektion.options[document.Auswahl.Sektion.selectedIndex].value;
			var Bereich1Text = document.Auswahl.Bereich1.options[document.Auswahl.Bereich1.selectedIndex].text;
			var Bereich1Value = document.Auswahl.Bereich1.options[document.Auswahl.Bereich1.selectedIndex].value;
			var Bereichsnummer1 = document.Auswahl.Text1.value;

			//Auswahllisten-Ausgabe

			if( FlugzeugtypValue != "--" && Bereichsnummer1.length == 3 && Bereichsnummer1 != "" )
			{
				var output = "Flugzeugtyp: " + FlugzeugtypText + " / Sektion: " + SektionText + " / Bereich: " + Bereich1Text + Bereichsnummer1;
				var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;
			}

			//Fehlerüberprüfung

			if ( Bereichsnummer1 == "" )
			{
				var output = "Ein Fehler ist aufgetreten!!! <br><br>Es wurde keine Bereichsnummer eingetragen."
				var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;

			} else if ( Bereichsnummer1.length > 0 && Bereichsnummer1.length < 3 )
				{
					var output = "Ein Fehler ist aufgetreten!!! <br><br>Die Bereichsnummer ist unvollständig."
					var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;

				} else if ( FlugzeugtypValue == "--" || SektionValue == "--" || Bereich1Value == "--" )
					{
						var output = "Fehler!!! <br><br>Es wurde nichts gewählt!!!"
						var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;

					} else if ( isNaN(Bereichsnummer1) )
						{
							var output = "Fehler!!! <br><br>Es sind Buchstaben enthalten!!!"
							var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;
						}

		if( Bereich1Text == "AA" )
		{
			document.Auswahl.Folie_Anlegen[0].checked == true;
		}
			
		}


		//Die Entertaste findet keine Bedeutung mehr und wird deaktiviert

		function Entersperre(event)
		{
			if( event.keyCode == 13)
			{
				return false;
			}
				return true;
		}


		
		//-->
	</script>

...

Antwort 2 von Romero vom 28.01.2022, 20:12 Options

...
</head>
	<body onKeyPress="return Entersperre(event)">
	<form name="Auswahl">
		<table align="center">
			<tr height=10px>
				<td colspan=12></td>
			</tr>
 			<tr height=50px>
				<td width=10px></td>
				<td colspan=10 width=1020px><h2><center>Stücklistenscript</center></h2></td>
				<td width=10px></td>
			</tr>
			<tr height=25px>
				<td colspan=12></td>
			</tr>
			<tr height=25px>
				<td width=10px></td>
				<td width=80px align="center">Flugzeugtyp:</td>
  				<td width=80px><label id="FLTLabel" for="FLT"></label>
					<select id="FLT" name="FLT">
    						<option value="--">Bitte wählen:</option>
						<option value="SA1">A318</option>
						<option value="SA2">A319</option>
						<option value="SA3">A320</option>
						<option value="SA4">A321</option>
						<option value="LR1">A330-200</option>
						<option value="LR2">A330-300</option>
						<option value="LR3">A340</option>
						<option value="LR4">A340-500</option>
						<option value="LR5">A340-600</option>

  					</select></td>
				<td width=280px id="Flugzeugtyp"></td>

  				<td width=55px align="center">Sektion:</td>
  				<td width=63px><label id="SektionLabel" for="Sektion"></label>
					<select id="Sektion" name="Sektion">
						<option value="--">------</option>
					</select></td>
				<td width=187px id="Sek"></td>

				<td width=55px align="center">Bereich:</td>
				<td width=60px><label id="SektionBereich1" for="Bereich1"></label>
      					<select id="Bereich1" name="Bereich1">
						<option value="--">------</option>
					</select></td>

				<td width=40px>
					<input type="text" name="Text1" value="" size="1" maxlength="3"></input></td>
				<td width=100px id="Fehlerausgabe1" align="center"></td>
				<td width=10px></td>
			</tr>
			<tr height=25px>
				<td width=10px></td>
				<td colspan=6 rowspan=3 id="Prüfung"></td>
				<td width=55px></td>
				<td width=60px>
      					<select name="Bereich2" style="display:inline">
						<option value="10_13">A</option>
						<option value="10_13">B</option>
					</select></td>
				<td width=40px>
					<input type="text" name="Text2" value="" size="1" maxlength="3" style="display:inline"></input></td>
				<td width=100px id="Fehlerausgabe2"></td>
				<td width=10px></td>
			</tr>
			<tr height=25px>
				<td width=10px></td>
				<td width=55px></td>
				<td width=60px>
      					<select name="Bereich3" style="display:inline">
						<option value="10_13">A</option>
						<option value="10_13">B</option>
					</select></td>
				<td width=40px>
					<input type="text" name="Text3" value="" size="1" maxlength="3" style="display:inline"></input></td>
				<td width=100px id="Fehlerausgabe3"></td>
				<td width=10px></td>
			</tr>
			<tr height=25px>
				<td colspan=5></td>
			</tr>
			<tr height=25px>
				<td width=10px></td>
				<td colspan=10 align="center">
					<input type="button" value="Übernehmen" onClick="Übernehmen()"></input></td>
				<td width=10px></td>
			</tr>
			<tr height=5px>
				<td colspan=12></td>
			</tr>
			<tr height=25px>
				<td width=10px></td>
				<td colspan=2>Art der Stücklistenanlegung:</td>
				<td>
					<input type="radio" name="STL_Anlegen" value="STL_Neu">Stückliste neu anlegen.</input></td>
				<td colspan=3>
					<input type="radio" name="STL_Anlegen" value="STL_Aktualisieren">bestehende Stückliste aktualisieren.</input></td>
				<td colspan=4></td>
				<td width=10px></td>
			<tr height=5px>
				<td colspan=12></td>
			</tr>
			<tr height=25px>
				<td width=10px></td>
				<td colspan=2>Folien-Stückliste:</td>
				<td>
					<input type="radio" name="Folie_Anlegen" value="Folie_ohne">kein separate Folienstückliste</input></td>
				<td colspan=3>
					<input type="radio" name="Folie_Anlegen" value="Folie_BTH">Burnthrough (Terflame / Terul 18 / ...)</input></td>
				<td colspan=4>
					<input type="radio" name="Folie_Anlegen" value="Folie_WS">Nur WS (Terim. 7/8 / Terul 19)</input></td>
				<td width=10px></td>
			<tr height=5px>
				<td colspan=12></td>
			</tr>
			</tr>
			<tr height=25px>
				<td width=10px></td>
				<td colspan=10 align="center">
					<input type="button" value="Start" onClick="Go()"></input></td>
				<td width=10px></td>
			</tr>
			<tr height=10px>
				<td colspan=12></td>
			</tr>
			<tr height=380px>
				<td width=10px></td>
				<td height=380px width=1000px colspan=10 bgcolor=white border=2px><div id="msgs" class="rollbalken"></div>
				</td>
				<td width=10px></td>
			</tr>
			<tr height=5px>
				<td colspan=12></td>
			</tr>
		</table>
  	</form>


	</body>
</html>

...

Antwort 3 von Romero vom 28.01.2022, 20:13 Options

...

Die Bereichauswahl-Datei sieht so aus (gekürzter Inhalt):

Zitat:
var Bereich1Auswahl = {
'FLT' : {
'SA1' : ['SA1', 'A318'],
'SA2' : ['SA2', 'A319'],
'SA3' : ['SA3', 'A320'],
'SA4' : ['SA4', 'A321'],
'LR1' : ['LR1', 'A330-200'],
'LR2' : ['LR2', 'A330-300'],
'LR3' : ['LR3', 'A340'],
'LR4' : ['LR4', 'A340-500'],
'LR5' : ['LR5', 'A340-600']
},

'Sektion' : {
'SA1' : [
['10_1', '10']
],

'SA2' : [
['10_2', '10']
],

'SA3' : [
['10_3', '10']
],

'SA4' : [
['10_4', '10']
],

'LR1' : [
['13_14_1', '13 / 14'],
['16_18_1', '16 / 18']
],

'LR2' : [
['13_14_2', '13 / 14'],
['16_18_2', '16 / 18']
],

'LR3' : [
['13_14_3', '13 / 14'],
['16_18_3', '16 / 18']
],

'LR4' : [
['13_14_4', '13 / 14'],
['16_18_4', '16 / 18']
],

'LR5' : [
['13_14_5', '13 / 14'],
['16_18_5', '16 / 18']
]
},

'Bereich1' : {

'10_1' : [
['A', 'A'],
['B', 'B']
],
'10_2' : [
['A', 'A'],
['B', 'B']
],
'10_3' : [
['A', 'A'],
['B', 'B']
],
'10_4' : [
['A', 'A'],
['B', 'B']
],
'13_14_1' : [
['AA', 'AA'],
['BB', 'BB']
],
'16_18_1' : [
['A', 'A'],
['B', 'B']
],

'13_14_2' : [
['AA', 'AA'],
['BB', 'BB']
],
'16_18_2' : [
['A', 'A'],
['B', 'B']
],

'13_14_3' : [
['AA', 'AA'],
['BB', 'BB']
],
'16_18_3' : [
['A', 'A'],
['B', 'B']
],
'13_14_4' : [
['AA', 'AA'],
['BB', 'BB']
],
'16_18_4' : [
['A', 'A'],
['B', 'B']
],
'13_14_5' : [
['AA', 'AA'],
['BB', 'BB']
],
'16_18_5' : [
['A', 'A'],
['B', 'B']
]
}
};

...

Antwort 4 von Romero vom 28.01.2022, 20:14 Options

...
Die LinkedSelection-Datei sieht so aus:

/**
 * LinkedSelection ist ein Klasse zur Steuerung dynamisch verketteter Auswahllisten
 * @param inputSelects ein Array mit den IDs der Auswahllisten in hierarchischer Reihenfolge
 *						Bsp: [ 'select1', 'select2', 'select3' ]
 * @param callback Funktion, welche beim Abschließen (und Ändern) der Auswahl aufgerufen werden soll
 * @param data das Daten-Objekt in JSON
 *						Bsp: { 'select1':['wert1','text1'], 'select2':['wert5','text5'] }
 **/
function LinkedSelection( inputSelects, callback, data )
{
	var self = this;				/* um aus EventHandlern auf diese Instanz zugreifen zu können */
	var selects = new Array();		/* Liste der verketteten Auswahllisten */

	/**
	 * Die Funktion changeHandler wird dem onchange-Handler jeder Auswahlliste zugewiesen.
	 * Wenn eine gültige Auswahl getroffen wurde, soll entweder die als nächste
	 * Auswahlliste (nextSelect) bekannte Auswahlliste mit Daten befüllt werden,
	 * oder die Callback-Funktion ausgeführt werden.
	 **/
	var changeHandler = function()
	{
		var value = this.selectedValue();

		// Auf die nächste Auswahlliste folgende Auswahllisten müssen wieder
		// in den default-Zustand versetzt werden
		if( typeof(this.nextSelect) == 'object' )
		{
			for( var i = this.nextSelect.selectID + 1; i < selects.length; i++ )
				selects[i].replaceOptions( new Array() );
		}

		// Abbrechen, wenn ein Dummy-Wert ausgewählt wurde
		if( value == '--' )
		{
			if( this.selectID < selects.length )
				selects[ this.selectID +1 ].replaceOptions( new Array() );

			return;
		}

		if( typeof(this.nextSelect) == 'object' )
		{
			/*
			 * nextSelect ist eine Auswahlliste
			 */

			// Wenn keine Daten zur gemachten Auswahl zur Verfügung stehen,
			// müssen wir sicherstellen, dass wir auf keine nicht vorhandenen Objekte zugreifen.
			if( !data[ this.nextSelect.id ][ value ] )
			{
				if( !data[ this.nextSelect.id ] )
					data[ this.nextSelect.id ] = {};

				data[ this.nextSelect.id ][ value ] = new Array();
			}

			// Neue Optionen in der nächsten Auswahlliste setzen
			this.nextSelect.replaceOptions( data[ this.nextSelect.id ][ value ] );

			// Wenn die Auswahlstrecke nicht beendet ist, muss die Callback-Funktion
			// dennoch aufgerufen werden, damit entsprechend auf Änderungen
			// reagiert werden kann.
			callback( new Array() );
		}
		else
		{
			/*
			 * Die Auswahlstrecke ist absolviert
			 */

			// Wahlen der einzelnen Listen in ein Array schreiben um
			// dieses an die Callback-Funktion zu übergeben.
			var selected = new Array();
			for( var i = 0; i < selects.length; i++ )
			{
				selected.push( { 'id' : selects[i].id,
								 'value': selects[i].selectedValue(),
								 'text' : selects[i].selectedText() } );
			}
			callback( selected );
		}
	};

	/**
	 * replaceOptions ersetzt die aktuellen Optionen der Auswahlliste durch
	 * die im Array newOptions gelieferten Daten. Wenn ein leeres Array übergeben
	 * wird, wird die default-Option "--" gesetzt.
	 * @param newOptions ein Array mit den neuen Optionen
	 *					  Bsp: [ ['value1','text1'], ['value2','text2'], ]
	 **/
	var replaceOptions = function( newOptions )
	{
		/*
		 * Diese Funktion setzt bewusst DOM-Methoden ein und verzichtet
		 * auf die vom Options-Objekt gegebenen Möglichkeiten.
		 */

		// alte Optionen der Auswahlliste löschen
		var opts = this.getElementsByTagName( 'option' );
		while( opts.length > 0 )
			this.removeChild( opts[0] );

		// wenn keine neuen Optionen übergeben wurden, default-Option setzen
		// andernfalls "Bitte wählen" voranstellen
		if( newOptions.length == 0)
			this.addOption( '--', '------' );
		else
			this.addOption( '--', 'Bitte wählen:' );

		// neue Optionen in die Auswahlliste schreiben
		for( var i = 0; i < newOptions.length; i++ )
			this.addOption( newOptions[i][0], newOptions[i][1] );
	};

	/*
	 * Fügt der Auswahlliste eine neue Option hinzu
	 * @param value Wert der neuen Option
	 * @param text Name der neuen Option
	 */
	var addOption = function( value, text )
	{
		var opt = document.createElement( 'option' );
		opt.value = value;
		opt.appendChild( document.createTextNode( text ) );
		this.appendChild( opt );
	};

	/**
	 * holt den Wert der aktuell gewählten Option
	 * @returns den Value der aktuell gewählten Option
	 **/
	var selectedValue = function()
	{
		return this.options[ this.selectedIndex ].value;
	};

	/**
	 * holt den Text (Name) der aktuell gewählten Option
	 * @returns den Text der aktuell gewählten Option
	 **/
	var selectedText = function()
	{
		return this.options[ this.selectedIndex ].text;
	};

	/**
	 * Selektiere die Option mit dem Wert value, wenn keine Option mit dem Wert
	 * value existiert, wird die Auswahl nicht geändert.
	 * @param value der Wert den eine Option haben muss, um ausgewählt zu werden.
	 **/
	var selectByValue = function( value )
	{
		for( var i = 0; i < this.options.length; i++ )
		{
			if( this.options[i].value == value )
				this.selectedIndex = i;
		}
	}

	/**
	 * Initialisiere den Manager für verkettete Auswahllisten.
	 * Findet Auswahllisten anhand der (per inputSelects) bekannten IDs.
	 * Bestückt die Auswahllisten mit den nötigen Funktionen und Event-Handlern
	 **/
	this.init = function()
	{
		// bestücke bestehende selects
		for( var i = 0; i < inputSelects.length; i++ )
		{
			var t = document.getElementById( inputSelects[i] );

			// ignoriere falsche IDs
			if(!t)
				continue;

			// neue Funktionen und Event-Handler zuweisen und in selects registrieren
			t.replaceOptions = replaceOptions;
			t.addOption = addOption;
			t.selectedValue = selectedValue;
			t.selectedText = selectedText;
			t.selectByValue = selectByValue;
			t.selectID = selects.length;
			t.onchange = changeHandler;
			selects.push( t );

			// registriere Auswahlliste als nextSelect bei der vorhergehenden
			if( selects.length > 1 )
				selects[ selects.length-2 ].nextSelect = t;
		}
	};

	// initialisieren!
	this.init();
}


So nun habt ihr eine Übersicht über mein bisheriges Geschafftes.

Nun zu meinen Fragen: Wie schaff ich es, dass bei den Auswahlmöglichkeiten der Folie-Stückliste (bisher nur getestet), wenn ich da eine Auswahltreffe, welche aber für den Bereich in 1. Linie unzulässig ist, trotz anwählen eines anderen Bereichs bestehen bleibt?

Bsp: Bereich AA002 soll dann bei Foliestückliste "ohne separate Foliestückliste" vorselektieren. Wenn ich nun wähle "mit BTH", dann erscheint folgendes: AA002, FAA002, TAA002, soweit richtig. Nun wähle ich aber einen neuen Bereich, z.B. BB002, dann erscheint BB002, FBB002, TBB002. Da soll er wieder in die Ausgangsposition springen (Anmerkung: die Vorselektierung erfolgt schon mit der Auswahl des Bereiches). Denn bei DD002 soll er in die Auswahl "mit BTH" springen.

Ich könnte das ganze über unzählige IF's und ELSE's machen aber dann wird das sicherlich zu lang. Gibts da keine einfachere Lösung???

Daswar erstmal das erste. Sicherlich kommen da noch weitere hinzu. Bin gespannt auf eure Anworten.

LG Romero

Antwort 5 von son_quatsch vom 29.01.2022, 07:47 Options

Das Problem ist, dass sich niemand die Arbeit machen wird, diese riesigen Code-batzen zu kopieren und zurechtzulegen, nur um dann in größerer Zeit erstmal zu verstehen, was du gemacht hast und dann letztendlich das eigentliche Problem suchen (und auch noch lösen).

Das Spiel "Frage-Antwort" klappt viel besser, wenn du es den ganzen Code auf genau das Problem kürzt - also auf z.B. 10 Zeilen. Wenn du das ganze dann im reinsten JavaScript machst, hast du noch mehr Chancen auf Antworten, da HTA eher wenige ansprechen dürfte.

Antwort 6 von Romero vom 01.02.2022, 11:26 Options

ok dann werd ich nach und nach meine fragen hier versuchen simpel zu erklären.

ich besitze 3 auswahllisten mittels radio-button.je nach dem was ich anklicke soll ein entsprechender text (hab ich schon geschrieben) und ein entsprechender wert gespeichert und ausgegeben werden (mit speichern meine ich das reine "merken"). nun ist da aber folgendes:

bei bestimmten bereichen,soll er aber schon in ein bestimmtes radio-button springen.sprich bei z.b. DD123 soll er "checked=true" beim 2. radio-button setzen. das klappt auch wunderbar.bei den anderen bereichen springt er ins 1. radio-button.das klappt auch.also diesen unterschied zwischen den bereichen funzt,also das diese unterschieden werden.

wenn ich nun im bereich AA123 den 2. radio-button anwähle, soll er dann AA123,FAA123, TAA123 ausgeben.und daklappt es nicht.

			if( Bereich1Text != "DD" )
			{
				document.Auswahl.Folie_Anlegen[0].checked = true;
				var output = Bereich1Text;
				var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;
			}

			if( Bereich1Text != "DD" && document.Auswahl.Folie_Anlegen[1].checked == true )
			{
				var output = Bereich1Text + " / F" + Bereich1Text + " / T" + Bereich1Text;
				var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;
			}

			if( Bereich1Text == "DD" )
			{
				document.Auswahl.Folie_Anlegen[1].checked = true;
				var output = Bereich1Text + " / F" + Bereich1Text + " / T" + Bereich1Text;
				var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;
			}


irgendwie springt er immer in die ausgangs-auswahl rein.
wenn ich das aber so umschreibe,dass das er dann,wenn ich auf das 2. radio-butto klicke,AA123,FAA123,TAA123 ausgibt,dann springt er aber nimmer zurück wenn ich dann z.b. BB wähle.dann bleibt er im 2. radio-button.

soll ich das ganze in eine for-schleife schreiben?denn mit if kann ich es auch,aber dann müsste ich jeden bereich extra machen und das dauert halt zu lange.

lg romero

Antwort 7 von gast42 vom 01.02.2022, 16:05 Options

sowahl in Variablennamen als auch in IDs sind Umlaute nicht sinnvoll bzw. erlaubt, gleiche Bezeichnungen für JS-Variablen und IDs sind zwar erlaubt, verwirren aber den IE, sollten also vermieden werden.

Warum du createElement statt des günstigeren new Option nutzt erschließt sich mir nicht, Unwissenheit scheint es ja nicht zu sein!

Ob das dein Problem behebt weiß ich nicht, dazu müsstest du mal ein Online-Beispiel präsentieren.

Antwort 8 von Romero vom 03.02.2022, 11:10 Options

online-beispiel ist eher schlecht,da das ganze als datei vorliegt bzw als datei genutzt werden soll.also als *.hta-datei.

soll sozusagen wie ein programm nutzbar sein.bisher läuft alles auch super,nur diese paar "perfektionen" noch nicht.

warum da oben createElement steht statt new option kann ich nicht sagen,da ich dieses übernommen hab und meinen bedingungen angepasst habe.aber diese linkedselection ist ja nur für die auswahllisten,nicht aber für die radio-buttons...

wie kann ich das ganze mittels for-schleife machen???

also das er für jeden ausgewählten bereich (variable "i" von 0 bis "länge des bereiches") das selbe durchlaufen lässt.
also bei AA001 gibt es 3 möglichkeiten,was er ausgeben soll (mit einem zum anfang,nach einer bedingung, "gecheckdem",radio-button).bei BB001 ebenfalls 3 möglichkeiten,was er ausgeben soll,aber genauso wie bei dem AA001. Nur bei DD001 und bei EE001 soll die vorauswahl bzw ein bestimmter radio-button vorausgewählt werden.aber auch da die anderen 2 sollen ebenfalls wählbar sein...

das bekomme ich nicht hin.

mittels IF kann ich für jeden Buchstaben-Doppel eine eigene if-bedingung schreiben aber da werd ich doch bekloppt...

ich dachte da halt an eine for-schleife,welche die einzelnen "bereiche" (also AA=0, BB=1,...) durchläuft und für jedes "i" diese bedingungen ausgibt,dabei aber diese 3 möglichkeiten ausgibt.

Antwort 9 von Romero vom 05.02.2022, 11:39 Options

gibt es eine möglichkeit diesen "onchange" in eine tabelle einzufügen?

weil das scheint ja nicht zu klappen bzw. ist dafür nicht vorgesehen.ich kann es zwar über onclick machen,das ziel ist das selbe,aber wenn der nutzer,z.b. ich,dann mit dem mausrad oder den pfeiltasten was anderes auswählt,passiert da nix.

in meinem test ohne tabelle funzt onchange wunderbar,nur in der tabelle nicht.gibts dafür ne lösung???

Antwort 10 von gast42 vom 06.02.2022, 08:09 Options

du verlangst hier permanent, dass wir uns mit deinem Code und deinen intransparenten Bezeichnern (xx4564) auseinandersetzen, benutzt zudem Begriffe wie "Tabelle" in nur halbvollständigen Sätzen und dazu den absoluten Totschläger "funzt wunderbar" oder "funzt nicht", ohne je zu schreiben was du darunter verstehst.

Reduziere dein Problem auf das Wesentliche (im Quellcode) und beschreibe dies sinnvoll und nachvollziehbar und vermeide halbausgegorene Sätze. Vorher wird das nichts!

PS: natürlich liegt das als Datei vor - das ist in Computern heutzutage so üblich, sogar auf Webservern!

Antwort 11 von supporter2010 vom 06.02.2022, 11:44 Options

ist nur eine Überlegung, aber wäre es nicht sinnvoller daraus eine "echte" Datenbank-Anwendung zu konzipieren? Ist natürlich auch viel Arbeit, aber am Ende vielleicht deutlich übersichtlicher oder besser zu warten...wenn Du keinen Datenbankserver benutzen willst, könntest Du ja vielleicht auch sqlite verwenden und das Abfrage-Interface als *.hta -Seite generieren...

Antwort 12 von Romero vom 15.02.2022, 11:13 Options

@supporter2010

das mit der datenbank wäre mir ehrlich gesagt zu komplex,denn ich will das auch verständlich nachvollziehen,deswegen bin ich schon von dem ursprünglichem batch,was ich hatte,abgegangen und wollte das mit javascript machen,da ich mehr möglichkeiten sah,mein porjekt oder besser gesagt,mein,ich nenns mal "programm" umzusetzen.

natürlich gibt es noch genug andere programmiersprachen aber auch in denen muss ich mich erstmal reinfuchsen und reinlesen damit ich das alles nachvollziehen kann.

@gast42

ich könnte irgendwie versuchen,das ganze online zu stellen,damit man sich diese dateien sich runterladen kann.

also da versuch ich es mal anders zu beschreiben.

mein script,welches auszuführen wäre,ist in einer *.hta datei gespeichert.da steht auch der code über das aussehen also die benutzeroberfläche.diese benutzeroberfläche wurde in html-codes geschrieben.ich habe hier bewusst den wert auf eine große tabelle gelegt,weil ich es für mich übersichtlicher finde,die einzelnen auswahlmöglichkeiten unterzukriegen.

diese tabelle besteht aus mehreren <tr>'s und <td>'s.wenn ich nun eine funktion aufrufe,hier ist es die funktion onchange="irgendwas()",dann passiert nichts.diese funktion steht in einer <td>...</td>.weil von da aus diese funktion ausgeführt werden soll.

diese funktion soll bewirken,dass,wenn jemand die auswahlliste anklickt und da eine neue auswahl trifft,dass da eine veränderung zum vorschein kommt.das macht es eben nicht.benutze ich aber statt onchange="irgendwas()" onclick="irgendwas()",dann funktioniert diese veränderung,aber nur,sobald er da draufdrückt.deswegen heißt es ja auch onclick.
ich möchte aber gern,dass diese veränderung auch mittels mausrad oder pfeiltasten möglich wird.außerhalb der <td>'s geht der befehl onchange.ich hab gelesen,dass onchange in <tr>'s bzw <td>'s nicht möglich ist,deswegen habe ich gefragt,ob es dafür einen anderen befehl gibt,der das selbe macht wie onchange aber in dieser kompletten tabelle?

hoffe jetzt habe ich das genauer beschrieben.

lg romero

ach und da wäre noch was:

wie übernehme ich einen wert,welcher mittels if's und else's gesetzt wird,in eine neue funktion?

aussehen tut's vereinfacht so:

function uebermitteln()
{
if( wert == 0 )
{
var teilwert = "ok";
}
else if( wert == 1 )
{
var teilwert == "nicht ok";
}
else
{
var teilwert == "alles falsch";
}
return teilwert;
};

und dieser teilwert soll aber in einer anderen funktion ausgegeben werden.

function ausgeben()
{
output = teilwert;
var ausgabe = document.getelementbyid( 'ausgabe' ).innerhtml = output;
}

aber da macht er nix.also er übermittelt nix an die funktion ausgeben.

ausgegeben wird die funktion ausgeben mittels einem ok-button und einem onclick="ausgebe()".

wo liegt nun der fehler???

Ähnliche Themen

xml-Datei auslesen und in tabelle darstellen
Reavermaster  21.07.2008 - 71 Hits - 7 Antworten

MySQL Select Befehl
Deathfun  19.07.2008 - 14 Hits - 1 Antwort

DIVs verschieben
tomslawik  20.07.2008 - 80 Hits - 2 Antworten

Aufnahmedatum eines Bildes ausgeben
Computerfreaki  21.07.2008 - 22 Hits - 4 Antworten

eigenes greasemonkey script
raqel  21.07.2008 - 40 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026