Hilfe bei TABELLE

lettner

Grünschnabel
Servas ,
Kann mir bitte einer von euch helfen?
Habe hier eine dynamisch erzeugte Tabelle mittels JavaScript erstellt
wo ich unteranderem einen Einzelpreis und eine Menge eingeben kann
wie kann ich jetzt den dazugehörigen Gesamtpreis in der Tabelle ausgeben bzw. errechnen. Geht das überhaupt in solch einer Tabelle?
Ich glaube übern Index, aber wie soll das gehen?

Danke im voraus


Code:
<html>
<head>
</head>
  
<script type="text/javascript">

var Zeile = 1;
var b = new Array(50);
var c = new Array(50);
var d = new Array(50);
var e = new Array(50);
var i = 0;


function InsertRow() 
{
  if(document.getElementById("Formular_de").Art.value == "" || document.getElementById("Formular_de").Art.value.search(/^\w+$/i))
  {
    alert ("Geben Sie bitte eine Artikelbeschreibung ein!");
    document.getElementById("Formular_de").Art.focus();
  }
  else if(document.getElementById("Formular_de").Men.value == "" || document.getElementById("Formular_de").Men.value.search(/^\d+$/i))
  {
    alert ("Geben Sie bitte eine Menge ein!");
    document.getElementById("Formular_de").Men.focus();
  }
  else if (document.getElementById("Formular_de").Ein.value == "")		
  {
  	alert ("Geben Sie bitte den Einzelpreis ein!");
	document.getElementById("Formular_de").Ein.focus();
  }
  else if (document.getElementById("Formular_de").Ges.value == "")	
  {
  	alert ("nix gibs");
	document.getElementById("Formular_de").Ges.focus();
  }
  else
  {
    if (Zeile == 0)
      document.getElementById("Tabelle").deleteRow(0);
    var TR = document.getElementById("Tabelle").insertRow(Zeile);
    Zeile += 1;
	
    var TD1 = document.createElement("td");
    var TD1text = document.createTextNode(document.getElementById("Formular_de").Art.value);
    TD1.appendChild(TD1text);
	
      var TD2 = document.createElement("td");
      var TD2text = document.createTextNode(document.getElementById
      ("Formular_de").Men.value);
      TD2.appendChild(TD2text);
	 
     var TD3 = document.createElement("td");
     var TD3text = document.createTextNode(document.getElementById
     ("Formular_de").Ein.value);
     TD3.appendChild(TD3text);
	
    var TD4 = document.createElement("td");
    var TD4text = document.createTextNode(document.getElementById 
    ("Formular_de").Ges.value);
    TD4.appendChild(TD4text);
   
    TR.appendChild(TD1);
    TR.appendChild(TD2);
    TR.appendChild(TD3);
    TR.appendChild(TD4);
    
    b[i]=document.getElementById("Formular_de").Art.value;
    
    c[i]=document.getElementById("Formular_de").Men.value;
    
    d[i]=document.getElementById("Formular_de").Ein.value;
    
    e[i]=document.getElementById("Formular_de").Ges.value;
   
    i++;
  
    
    document.getElementById("Formular_de").Art.value = "";
    document.getElementById("Formular_de").Men.value = "";
    document.getElementById("Formular_de").Ein.value = "";
    document.getElementById("Formular_de").Ges.value = "";
  }
}

</script>

<body>
	
	
	
 <form id="Formular_de" action="">
  

	<input type="text" name="Art">		<!--   Artikelbezeichnung      -->
	<input type="text" name="Men">	<!--   Mengen     -->
	<input type="text" name="Ein">		<!--   Einzelpreis      -->
	<input type="text" name="Ges">		<!--   Gesamtpreis      -->

	<input type="reset" name="back" value="Zurücksetzen">
	<input type="button" value="neuen Eintrag Hinzuf&uuml;gen" onClick="InsertRow()">
	

 </form>
 
 
<table id="Tabelle" border="1" width="500">
<tr><td>genaue Artikelbeschreibung</td><td>Menge</td><td>Einzelpreis</td><td>Gesamtpreis</td></tr>
</table>


	
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
Moin,

Tabellen haben eine rows-Eigenschaft, diese liefert einen indizierten Array mit allen TR-Elementen.
TR-Elemente wiederum haben eine cells-Eigenschaft, diese beinhaltet alle Tabellenzellen dieser TR...wiederum als indizierten Array.

"Index" ist daher ein gutes Schlüsselwort, du könntest alle rows(ausgenommen die erste mit dem Tabellenkopf) durchlaufen, und dann aus cells[2] und cells[3] die Preise ermitteln und summieren.

Aber da du beim Erzeugen der Tabelle ja schon die Preise hast, würde ich es für sinnvoller erachten, wenn du die Summen in 2 Variablen speicherst, und bei jeder neuen TR, die du einfügst, diese Variablen summierst.
 
HEY
Danke für deine schnelle Antwort, des mit die rows und cells verstehe ich jetzt danke
aber ich weiß jetzt leider nicht wie ich das mit den Index lößen kann
hab noch nicht wirklich etwas mit Index schon gemacht nur angeschnitten, daher sagt mir das jetzt leider nicht wirklich was
 
Ein Index ist ein Zähler, über den man bspw. auf Elemente eines Arrays zugreifen kann.
(Beachte, dass dieser Zähler immer bei 0 beginnt)

Mit bspw:
Code:
document.getElementById('Tabelle').rows[1].cells[2].firstChild.data
würdest du auf die 3. Zelle in der 2. TR der Tabelle mit der id "Tabelle" zugreifen und den Inhalt dieser Zelle zurückgeliefert bekommen.
 
danke für deine hilfe xD
hat mir sehr geholfen, aber eine frage ist dabei noch entstanden
bei deinem bsp. gibst du konkret ein auf welches feld du zugreifen möchtest
zb. 2 zeile, 3 spalte

aber da es ja dynamisch ist, weiß man ja nicht wie viele zeilen es gibt
 
Tu, das...falls was nicht klappt, meld dich halt.

Ich wollt dir nicht alles fertig präsentieren...so lernst du gleich nebenbei ein paar Sachen mehr :)
 
Hey
Hab jetzt über das Wochenende es versucht zu machen, aber ich muss zugeben
obwohl ich Stunden investiert habe, bin ich verzweifelt dabei :mad: :confused:
Verstehe einfach nicht wie ich das lösen kann.

Bitte um Hilfe
 
Wie nun genau....willst du aus Menge und Einzelpreis der Zeile den Gesamtpreis der Zeile errechnen und ausgeben, oder möchtest du aus allen einzelnen Gesamtpreisen den Gesamtpreis errechnen und ausgeben?
Oder gar beides?
 
Zurück