• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Interaktive Tabelle

Chrischie

New member
Hallo,

ich möchte eine interaktive Tabelle schreiben, die unter Beachtung der Leistungspunkte die aktuell Bachelornote berechnet.

Bisher rechnet die Tabelle das schon irgendwie.. das funktioniert aber leider nur wenn alle Noten eingetragen sind. Weiß jemand wie das klappen könnte, dass die Tabelle auch schon losrechnet, wenn nur ein Teil der Noten eingetragen wurde?

Mit freundlichen Grüßen.

HTML:
<html>
<head>
<script type="text/javascript">
    
    function calculate ()
    {
        var note1 = document.getElementById('note1').value;
        var note1 = document.getElementById('note2').value;
        var note1 = document.getElementById('note3').value;
        var note1 = document.getElementById('note4').value;
        var note1 = document.getElementById('note5').value;
        var note1 = document.getElementById('note6').value;
        var note1 = document.getElementById('note7').value;
        var note1 = document.getElementById('note8').value;
        var note1 = document.getElementById('note9').value;
        var note1 = document.getElementById('note10').value;
        var note1 = document.getElementById('note11').value;
        var note1 = document.getElementById('note12').value;
        var note1 = document.getElementById('note13').value;
        var note1 = document.getElementById('note14').value;
        var note1 = document.getElementById('note15').value;
        var note1 = document.getElementById('note16').value;
        var note1 = document.getElementById('note17').value;
        var note1 = document.getElementById('note18').value;
        var note1 = document.getElementById('note19').value;
        var note1 = document.getElementById('note20').value;
        var note1 = document.getElementById('note21').value;
        var note1 = document.getElementById('note22').value;
        var note1 = document.getElementById('note23').value;
        var note1 = document.getElementById('note24').value;
        var note1 = document.getElementById('note25').value;
        var note1 = document.getElementById('note26').value;
        var note1 = document.getElementById('note27').value;
        var note1 = document.getElementById('note28').value;
        var note1 = document.getElementById('note29').value;
        var note1 = document.getElementById('note30').value;
        var note1 = document.getElementById('note31').value;
      
        
         var erg1 = note1 * 6;
        var erg2 = note2 * 5;
        var erg3 = note3 * 5;
        var erg4 = note4 * 5;
        var erg5 = note5 * 5;
        var erg6 = note6 * 4;
        
        var erg7 = note7 * 5;
        var erg8 = note8 * 5;
        var erg9 = note9 * 6;
        var erg10 = note10 * 5;
        var erg11 = note11 * 5;
        var erg12 = note12 * 4;
        
        var erg13 = note13 * 5;
        var erg14 = note14 * 5;
        var erg15 = note15 * 5;
        var erg16 = note16 * 5;
        var erg17 = note17 * 5;
        var erg18 = note18 * 5;
        
        var erg19 = note19 * 5;
        var erg20 = note20 * 5;
        var erg21 = note21 * 4;
        var erg22 = note22 * 4;
        var erg23 = note23 * 5;
        var erg24 = note24 * 2;
        var erg25 = note25 * 2;
        
        var erg26 = note26 * 5;
        var erg27 = note27 * 20;
        var erg28 = note28 * 5;
        
        var erg29 = note29 * 12;
        var erg30 = note30 * 15;
        var erg31 = note31 * 3;
        
        var Gesamt =    (erg1 + erg2 + erg3 + erg4 + erg5 + erg6 + erg7 + erg8 + erg9 + erg10 + erg11 + erg12 +
                        erg13 + erg14 + erg15 + erg16 + erg17 + erg18 + erg19 + erg20 + erg21 + erg22 + erg23 +
                        erg24 + erg25 + erg26 + erg27 + erg28 + erg29 + erg30 + erg31)/177;
        
        document.getElementById('erg1').innerHTML = erg1;
        document.getElementById('erg2').innerHTML = erg2;
        document.getElementById('erg3').innerHTML = erg3;
        document.getElementById('erg4').innerHTML = erg4;
        document.getElementById('erg5').innerHTML = erg5;
        document.getElementById('erg6').innerHTML = erg6;
        document.getElementById('erg7').innerHTML = erg7;
        document.getElementById('erg8').innerHTML = erg8;
        document.getElementById('erg9').innerHTML = erg9;
        document.getElementById('erg10').innerHTML = erg10;
        document.getElementById('erg11').innerHTML = erg11;
        document.getElementById('erg12').innerHTML = erg12;
        document.getElementById('erg13').innerHTML = erg13;
        document.getElementById('erg14').innerHTML = erg14;
        document.getElementById('erg15').innerHTML = erg15;
        document.getElementById('erg16').innerHTML = erg16;
        document.getElementById('erg17').innerHTML = erg17;
        document.getElementById('erg18').innerHTML = erg18;
        document.getElementById('erg19').innerHTML = erg19;
        document.getElementById('erg20').innerHTML = erg20;
        document.getElementById('erg21').innerHTML = erg21;
        document.getElementById('erg22').innerHTML = erg22;
        document.getElementById('erg23').innerHTML = erg23;
        document.getElementById('erg24').innerHTML = erg24;
        document.getElementById('erg25').innerHTML = erg25;
        document.getElementById('erg26').innerHTML = erg26;
        document.getElementById('erg27').innerHTML = erg27;
        document.getElementById('erg28').innerHTML = erg28;
        document.getElementById('erg29').innerHTML = erg29;
        document.getElementById('erg30').innerHTML = erg30;
        document.getElementById('erg31').innerHTML = erg31;
        document.getElementById('Gesamt').innerHTML = Gesamt;
        document.getElementById('Bachelor').innerHTML = Bachelor;
       
    }
        
</script>
</head>
<body>

<table border="1">
<tr><th>Module</th><th>Art</th><th>LP</th><th>Note</th><th>Ergebnis</th></tr>
    <tr><th>1. Semester</td>
    <tr><th>Einführung in die Wirtschaftswissenschaften</td><td >P</td><td >6</td><td ><input type="text" size="3" id="note1" onchange='calculate()'></td><td size='3' type='text' id='erg1'></td>
    <tr><th>Einführung in die Wirtschaftskommnunikation</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note2" onchange='calculate()'></td><td size='3' type='text' id='erg2'></td>
    <tr><th>Instrumente der Wirtschaftskommunikation</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note3" onchange='calculate()'></td><td size='3' type='text' id='erg3'></td>
    <tr><th>Einführung in die Kommunikationswissenschaft</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note4" onchange='calculate()'></td><td size='3' type='text' id='erg4'></td>
    <tr><th>Text und Rethorik</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note5" onchange='calculate()'></td><td size='3' type='text' id='erg5'></td>
    <tr><th>Fremdsprache</td><td >WP</td><td >4</td><td ><input type="text" size="3" id="note6" onchange='calculate()'></td><td size='3' type='text' id='erg6'></td>
    <tr><th>2. Semester</td>
    <tr><th>Medienökonomie und Management</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note7" onchange='calculate()'></td><td size='3' type='text' id='erg7'></td>
    <tr><th>Marketing Grundlagen</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note8" onchange='calculate()'></td><td size='3' type='text' id='erg8'></td>
    <tr><th>Methoden empirischer Markt- und Kommunikationsforschung</td><td >P</td><td >6</td><td ><input type="text" size="3" id="note9" onchange='calculate()'></td><td size='3' type='text' id='erg9'></td>
    <tr><th>Grundlagen der Gestaltung</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note10" onchange='calculate()'></td><td size='3' type='text' id='erg10'></td>
    <tr><th>Projektstudium 1</td><td >WP</td><td >5</td><td ><input type="text" size="3" id="note11" onchange='calculate()'></td><td size='3' type='text' id='erg11'></td>
    <tr><th>Fremdsprache</td><td >WP</td><td >4</td><td ><input type="text" size="3" id="note12" onchange='calculate()'></td><td size='3' type='text' id='erg12'></td>
    <tr><th>3. Semester</td>
    <tr><th>Marketing Vertiefung</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note13" onchange='calculate()'></td><td size='3' type='text' id='erg13'></td>
    <tr><th>Kommunikationskontrolling</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note14" onchange='calculate()'></td><td size='3' type='text' id='erg14'></td>
    <tr><th>Kommunikative Aspekte der Unternehmsführung</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note15" onchange='calculate()'></td><td size='3' type='text' id='erg15'></td>
    <tr><th>Statistik</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note16" onchange='calculate()'></td><td size='3' type='text' id='erg16'></td>
    <tr><th>Gestlatung digitaler Medien</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note17" onchange='calculate()'></td><td size='3' type='text' id='erg17'></td>
    <tr><th>Projektstudium 2</td><td >WP</td><td >5</td><td ><input type="text" size="3" id="note18" onchange='calculate()'></td><td size='3' type='text' id='erg18'></td>
    <tr><th>4. Semester</td>
    <tr><th>Designmanagement</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note19" onchange='calculate()'></td><td size='3' type='text' id='erg19'></td>
    <tr><th>Kommunikationssoziologie</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note20" onchange='calculate()'></td><td size='3' type='text' id='erg20'></td>
    <tr><th>Kommunikationspsychologie</td><td >P</td><td >4</td><td ><input type="text" size="3" id="note21" onchange='calculate()'></td><td size='3' type='text' id='erg21'></td>
    <tr><th>Strategien der Wirtschaftskommunikation</td><td >P</td><td >4</td><td ><input type="text" size="3" id="note22" onchange='calculate()'></td><td size='3' type='text' id='erg22'></td>
    <tr><th>Wahlfplichtmodul: Kreative Prozesse oder Innovation</td><td >WP</td><td >5</td><td ><input type="text" size="3" id="note23" onchange='calculate()'></td><td size='3' type='text' id='erg23'></td>
    <tr><th>AWE-Modul 1</td><td >WP</td><td >2</td><td ><input type="text" size="3" id="note24" onchange='calculate()'></td><td size='3' type='text' id='erg24'></td>
    <tr><th>AWE-Modul 2</td><td >WP</td><td >2</td><td ><input type="text" size="3" id="note25" onchange='calculate()'></td><td size='3' type='text' id='erg25'></td>
    <tr><th>5. Semester</td>
    <tr><th>PR und Konzeptionstechnik</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note26" onchange='calculate()'></td><td size='3' type='text' id='erg26'></td>
    <tr><th>Fachpraktikum</td><td >P</td><td >20</td><td ><input type="text" size="3" id="note27" onchange='calculate()'></td><td size='3' type='text' id='erg27'></td>
    <tr><th>Praktikumsreflexion mit Präsentationstraining</td><td >P</td><td >5</td><td ><input type="text" size="3" id="note28" onchange='calculate()'></td><td size='3' type='text' id='erg28'></td>
    <tr><th>6. Semester</td>
    <tr><th>Bachelorarbeit</td><td >P</td><td >12</td><td ><input type="text" size="3" id="note29" onchange='calculate()'></td><td size='3' type='text' id='erg29'></td>
    <tr><th>Projektstudium 3</td><td >WP</td><td >15</td><td ><input type="text" size="3" id="note30" onchange='calculate()'></td><td size='3' type='text' id='erg30'></td>
    <tr><th>Bachelorseminar/Kolloquium</td><td >P</td><td >3</td><td ><input type="text" size="3" id="note31" onchange='calculate()'></td><td size='3' type='text' id='erg31'></td>
      <tr><th>Bachelor Note</td><td size='3' type='text' id='Gesamt' onchange='calculate()'></td>

</table>
</body>
</html>
 
Zuletzt bearbeitet:
Hey, Dormilich,
Hm das geht dann also nicht auf diese Art und Weise, da man vorher ja nicht weiß welche Noten in die Tabelle eingetragen werden oder?
Hast du da vllt. eine Idee oder einen Denkanstoß wie ich da weiter komme? Gibt es da irgend wie da eine Möglichkeit, dass man per If, else, so ähnlich wie man das in excel machen würde, lösen? :)
 
Es kommt drauf an, ob man die Berechnung überhaupt unterteilen kann. Da ich das aber nicht weiß, kann ich auch keine Tips dazu geben.
 
@chrischie
die x-fache Definition von von var note1 ist hoffendlich nur copy'n paste ?
Um das ganze einfach zu halten und auf IF Schleifen zu verzichten ginge es denn in allen Feldern den Value als Standart 0 zu setzen dann is egal wenn ein Feld nicht ausgefüllt wird und eine Multiplikation mit 0 = immer 0 und wirft
auch keinen Programmfehler . Wenn das nicht will dann muss man mit Schleifen an .
 
dann muss man mit Schleifen an
Scheifen? Ein if ist keine Schleife...

Zum Problem: ich würde ja die ganze Gewichtung und auch die genauen Felder nicht im JS hinterlegen, sondern im HTML speichern. Die Gewichtung könnte man ja in einem data-*-Attribut speichern und wenn man jeder Zeile, die eine Einzelnote repräsentiert, eine bestimmte Klasse gibt, kann man auch sehr einfach darüber iterieren. Dadurch wird der Code viel wartbarer und stabiler.
 
ja ein IF ist ein Statement und eine for Schleife ist auch ein Statement .
Aber du hast schon recht ich hätte mich genauer ausdrücken sollen.
 
Zurück
Oben