Saeculum: Mehrere Variablen zu einer zusammen fassen

Ich würde gerne wissen, wie ich verschiedene Variablen zu einer zusammenfassen kann. Ich habe 9 Variablen, die alles Inputfelder sind und möchte, dass alles zusammen eine neue Variable gibt.
Hier meine Vorstellung:

  
	<script type="text/javascript">  
		  
		var n=0, z=0, hilfe;  
		var F1 = document.getElementById("F1").value;  
		var F2 = document.getElementById("F2").value;  
		var F3 = document.getElementById("F3").value;  
		var F4 = document.getElementById("F4").value;  
		var F5 = document.getElementById("F5").value;  
		var F6 = document.getElementById("F6").value;  
		var F7 = document.getElementById("F7").value;  
		var F8 = document.getElementById("F8").value;  
		var F9 = document.getElementById("F9").value;  
		var daten = (F1+F2+F3+F4+F5+F6+F7+F8+F9);  
		  
		while (n < daten.length)  
		{  
			z=0;  
			while (z < daten.length -n -1)  
			{  
				if (daten[z] > daten[z+1])  
				{  
					hilfe = daten [z];  
					daten[z] = daten[z+1];  
					daten[z+1] = hilfe;  
				}  
				++z  
			}  
			++n  
		}  
		document.write(daten);  
	</script>	  

  1. Hier meine Vorstellung:

    Schon bessere Vorstellungen gesehen ;)
    Und wo ist jetzt dein Problem?

    1. Hallo,

      Hier meine Vorstellung:

      Schon bessere Vorstellungen gesehen ;)
      Und wo ist jetzt dein Problem?

      In seinem zweiten thread ist noch wenig mehr zur Aufgabe zu lesen, es soll ein Bubble-Sort-Algorithmus werden, wenns groß ist.

      Aber eigentlich geht es in beiden Threads darum, wie man die Usereingaben so auswerten kann, dass man sie im Script nutzen kann.

      martachen

  2. hi,

      var daten = (F1+F2+F3+F4+F5+F6+F7+F8+F9);  
    

    du willst sie summieren?

      while (n < daten.length)  
      {  
      	z=0;  
      	while (z < daten.length -n -1)  
      	{  
      		if (daten[z] > daten[z+1])  
      		{  
      			hilfe = daten [z];  
      			daten[z] = daten[z+1];  
      			daten[z+1] = hilfe;  
      		}  
      		++z  
      	}  
      	++n  
      }  
      document.write(daten);  
    

    und was soll damit passieren?

    Weißt Du, wie Objekte und Arrays in Javascript funktionieren?

    <http://de.selfhtml.org/javascript/objekte/array.htm@title=googlesuche: objekt array javascript selfhtml>

    mfg

    tami

  3. Hallo Saeculum,

    »» 		var F1 = document.getElementById("F1").value;  
    
    > 		var F2 = document.getElementById("F2").value;  
    > 		var F3 = document.getElementById("F3").value;  
    > 		var F4 = document.getElementById("F4").value;  
    > 		var F5 = document.getElementById("F5").value;  
    > 		var F6 = document.getElementById("F6").value;  
    > 		var F7 = document.getElementById("F7").value;  
    > 		var F8 = document.getElementById("F8").value;  
    > 		var F9 = document.getElementById("F9").value;  
    > 		var daten = (F1+F2+F3+F4+F5+F6+F7+F8+F9);
    
    

    ich würde ein Array nehmen:

    var daten = [];  
    daten[0] = document.getElementById("F1").value;  
    daten[2] = document.getElementById("F2").value;  
      ...
    

    Oder in einer Schleife:

    for(var i=0;i<9;i++) {  
      daten[i] = document.getElementById("F"+(i+1)).value;  
    }
    

    Wenn die Inputs entsprechend gruppiert sind, könnte man auch mit getElementsByTagname arbeiten.

    Gruß, Jürgen

    1. Oder in einer Schleife:

      for(var i=0;i<9;i++) {

      daten[i] = document.getElementById("F"+(i+1)).value;
      }

        
      
      > Gruß, Jürgen  
      >   
        
      Danke, ich habe es jetzt mit einer Schleife versucht,  
      jedoch gibt mein Bubblesort nur die Eingabedaten aus.  
      Ich habe es mit dem Debugger angeschaut, es funktioniert zwar,  
      nur bei der Ausgabe kommt wieder die Anfangs Variable (daten).  
        
      Hier mein ganzes Skript:  
      ~~~javascript
        
      <html>  
      <head>  
      	<title>Startseite</title>  
      	  
      	<link href="style.css" rel="stylesheet" type="text/css">  
      	<script type="text/javascript">  
      	function ordne()  
      	{	  
      		var n=0, z=0, hilfe;  
      		var F1 = document.getElementById("F1").value;  
      		var F2 = document.getElementById("F2").value;  
      		var F3 = document.getElementById("F3").value;  
      		var F4 = document.getElementById("F4").value;  
      		var F5 = document.getElementById("F5").value;  
      		var F6 = document.getElementById("F6").value;  
      		var F7 = document.getElementById("F7").value;  
      		var F8 = document.getElementById("F8").value;  
      		var F9 = document.getElementById("F9").value;  
      		var daten = "";  
      		for (var i = 1; i <=9 ; i++)  
      		{  
      			daten = daten + document.getElementById("F" + i + "").value;  
      		}  
      		while (n < daten.length)  
      		{  
      			z=0;  
      			while (z < daten.length -n -1)  
      			{  
      				if (daten[z] > daten[z+1])  
      				{  
      					hilfe = daten [z];  
      					daten[z] = daten[z+1];  
      					daten[z+1] = hilfe;  
      				}  
      				++z  
      			}  
      			++n  
      		}  
      		alert (daten);  
      	}	  
      	</script>	  
      	  
      </head>  
      
      
        
      <body style="background-image:url(background.png)">  
      	<div id="navigation" class="navtab"></div>  
      		  
      	<div class="content">  
      		<!--<div align=center><h1><u>innovate</u></h1></div>-->  
      		<img src="innovate.jpg" alt="innovate">  
      		<img src="innovate-gmbh.gif" alt="innovate">  
        
      		<div align=center><h2><b><u>Text</u></b></h2></div>  
      		<br>  
      		<div align=left>Langer Text Langer Text Langer Text.</div>  
      		<div align=left>Noch mehr Text und ein Link zu SAP:</div>  
      		<br>  
      		<div align=left><a href="http://www.sap.com/germany/index.epx" target="_blank">SAP - Homepage</a></div>  
      		<br>  
      		<br>  
      		<input type="TEXT" name="Feld1" id="F1" size="4">  
      		<input type="TEXT" name="Feld2" id="F2" size="4">  
      		<input type="TEXT" name="Feld3" id="F3" size="4">  
      		<input type="TEXT" name="Feld4" id="F4" size="4">  
      		<input type="TEXT" name="Feld5" id="F5" size="4">  
      		<input type="TEXT" name="Feld6" id="F6" size="4">  
      		<input type="TEXT" name="Feld7" id="F7" size="4">  
      		<input type="TEXT" name="Feld8" id="F8" size="4">  
      		<input type="TEXT" name="Feld9" id="F9" size="4">  
      		<button name="Ordnen" type="button" id="BT" onclick="ordne()"></button>  
      		  
      		  
      	</div>  
      </body>  
      </html>	  
      
      
      1. Hallo,

        Oder in einer Schleife:

        for(var i=0;i<9;i++) {

        daten[i] = document.getElementById("F"+(i+1)).value;
        }

        
        >   
        > es funktioniert zwar,  
        >  
        > ~~~javascript
          
        
        >  		  
        > 		var daten = "";  
        > 		for (var i = 1; i <=9 ; i++)  
        > 		{  
        > 			daten = daten + document.getElementById("F" + i + "").value;  
        > 		}  
        > 
        
        

        ganz ehrlich, ich glaube nicht, dass man das mit "es funktioniert zwar" beschreiben kann
        du initialisierst daten als leeren string und verknüpfst diesen mit dem werten aus den feldern. Dein alert am Ende sollte also so aussehen:

        wertFeld1wertFeld2wertFeld3wertFeld4wertFeld5wertFeld6wertFeld7wertFeld8

        schicker String, aber zum Arbeiten wertlos
        vergleiche deinen Code nochmal genau mit dem Code von Jürgen und bleib vor allem dabei, dass i mit 0 anfängt (es sei noch angemerkt, dass deine Schleife nur 8 mal statt 9 mal durchläuft)

        martachen

      2. Hallo Saeculum,

        bevor du weiter wild rumprobierst, solltest du dich besser mit den Grundlagen beschäftigen, z.B. http://de.selfhtml.org/javascript/objekte/array.htm. Beachte, dass

        var a = [];

        die Kurzschreibweise für

        var a = new Array();

        ist.

        Gruß, Jürgen

        PS Eine Stunde Probieren erspart einem zehn Minuten Handbuch lesen :)