Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Guten Abend liebe Community, da bin ich wieder mit einem neuen AE-Problem :D

vielleicht kennt ihr ja schon meinen vorherigen Post zu einem AE-Problem und meine Meinung zu unserem AE-Unterricht ..

 

 

Wir sollen in der Berufsschule ein Tool zur Zeugnisnotenberechnung erstellen. Das hat soweit gut geklappt. Als Erweiterung sollen wir jetzt die Möglichkeit einbauen, die Gewichtung der schriftlichen Note per Checkbox auswählen zu können.

Ich bin so weit gekommen, dass man eine Auswahl der Prozentangaben zur Gewichtung sehen und anklicken kann. Das Problem ist nun, dass man ja immer nur max. 1 Prozentangabe machen darf (hat ja anders keinen Sinn). Wie kann ich das realisieren? Ich habe versucht was herauszufinden und habe auch paar mal gelesen, dass es bei Checkboxen nicht möglich ist, die Auswahl auf max. 1 zu begrenzen. Das glaube ich aber irgendwie nicht, es muss doch eine Lösung dafür geben. Außerdem: wie kann ich dem Tool sagen, dass es jeweils gucken soll welche der Checkboxen ausgewählt ist und dass es dementsprechend den Wert der Variable 

 

Der Code den ich geschrieben habe:

<html>
    <head>
        <title>Zeugnisnotenberechnung V1
        </title>
        
<style>
table#Notenberechnung {
 border-collapse: Collapse;
}

table#Notenberechnung tr th,
table#Notenberechnung tr td {
 border: Inset 4px #C0C0C0;
}

table#Notenberechnung tr th,
table#Notenberechnung tr td {
 padding: 5px;
}
</style>
        
    </head>
    <body>
    <h2>Berechnung der Zeugnisnote<h2>
    <form action="Zeugnisnotenberechnung_Backend.php" method="POST">
    <table id=Notenberechnung>
        <td>Teilbereich</td>
        <td>Teilnote</td>
    </tr>
    <tr>
        <td>schriftliche Note</td>
        <td><input type="Text" name="schrNote"></td>
    </tr>
    <tr>
        <td>sonstige Leistung</td>
        <td><input type="Text" name="sonstNote"></td>
    </tr>
    
    
    </table>
    
    <input type="submit" name="ip_Submit" value="Daten absenden"/>
    <br/>
    <br/>
    Gewichtung der schriftlichen Note:
    <br/>
    <br/>
    
    <input type="radio" name="25_Prozent" value="25%">25%
    <input type="radio" name="33_Prozent" value="33%">33%
    <input type="radio" name="50_Prozent" value="50%">50%
    <input type="radio" name="66_Prozent" value="66%">66%
    <input type="radio" name="75_Prozent" value="75%">75%

   </body>
</html>

 

die 2. Datei .php :

 

<html>
   <body>
      <?php
      $schriftlicheNote= $_POST["schrNote"];
      $sonstigeLeistung= $_POST["sonstNote"];
      $Gesamtnote1=$schriftlicheNote+$sonstigeLeistung;
      $Gesamtnote2=$Gesamtnote1/2;
      $Gewichtung25=$_POST["25_Prozent"]
      $Gewichtung33=$_POST["33_Prozent"]
      $Gewichtung50=$_POST["50_Prozent"]
      $Gewichtung66=$_POST["66_Prozent"]
      $Gewichtung75=$_POST["75_Prozent"]
      echo "<h2>Berechnung der Gesamtnote</h2>
            <table border=\"1\">
                <tr>
                    <td>schriftliche Note</td>
                    <td> $schriftlicheNote </td>
                </tr>
                <tr>
                    <td>Sonstige Leistung</td>
                    <td> $sonstigeLeistung</td>
                </tr>
                <tr>
                    <td>Gesamtnote</td>
                    <td>$Gesamtnote2</td>
                </tr>
                
            </table>";
      ?>
   </body>
</html>

  • Autor
vor 7 Minuten schrieb KeeperOfCoffee:

PHP ist jetzt nicht mein Gebiet aber: Ich dachte es sollen Checkboxen sein? In deinem Code verwendest du allerdings Radiobuttons.

Stimmt, hatte es testweise mal mit Radio versucht in der Hoffnung, dass es dort realisierbar wäre.. Da bin ich aber auch nicht unbedingt weiter gekommen :D

So wie ich das sehe sind die Radiobuttons nicht miteinander verknüpft. Die Eigenschaft "Name" sollte bei allen 5 gleich sein, z.B. "Prozentangabe".

<input type="radio" name="prozentangabe" value="25%">25%
<input type="radio" name="prozentangabe" value="33%">33%
<input type="radio" name="prozentangabe" value="50%">50%
<input type="radio" name="prozentangabe" value="66%">66%
<input type="radio" name="prozentangabe" value="75%">75% 

 

Siehe:

Zitat

name: Jeder Radio-Button sollte einen internen Bezeichnernamen erhalten. Alle Radio-Buttons, die den gleichen Namen haben, gehören zu einer Gruppe, d.h. von diesen Buttons kann der Anwender genau einen markieren.

Quelle: https://wiki.selfhtml.org/wiki/HTML/Formulare/input/Radio-Buttons_und_Checkboxen

Bearbeitet von IPROG
Tippfehler

vor 2 Stunden schrieb Whitehammer03:

Stimmt, hatte es testweise mal mit Radio versucht in der Hoffnung, dass es dort realisierbar wäre.. Da bin ich aber auch nicht unbedingt weiter gekommen :D

Radio Buttons musst du auch verwenden, per Definition dürfen alle Checkboxen angekreuzt werden unabhängig davon ob andere angekreuzt wurden.

Also sind Radio Buttons schon richtig und wie oben erwähnt muss das Attribut name identisch sein für eine Gruppierung. 
 

Das gleiche geht übrigens auch mit Checkboxen (gruppieren mit name Attribut), da wirst du dann aber trotzdem alle ankreuzen können

  • Autor
vor einer Stunde schrieb IPROG:

So wie ich das sehe sind die Radiobuttons nicht miteinander verknüpft. Die Eigenschaft "Name" sollte bei allen 5 gleich sein, z.B. "Prozentangabe".


<input type="radio" name="prozentangabe" value="25%">25%
<input type="radio" name="prozentangabe" value="33%">33%
<input type="radio" name="prozentangabe" value="50%">50%
<input type="radio" name="prozentangabe" value="66%">66%
<input type="radio" name="prozentangabe" value="75%">75% 

 

Siehe:

Quelle: https://wiki.selfhtml.org/wiki/HTML/Formulare/input/Radio-Buttons_und_Checkboxen

Hat soweit geklappt, danke!

 

Muss jetzt nurnoch herausfinden, wie ich die Prozentangabe in die Berechnung miteinfließen lasse.. aber das sollte ich selber herausfinden können :D Danke für die Hilfe nochmals! :)

  • Autor
vor 28 Minuten schrieb synzonic:

Radio Buttons musst du auch verwenden, per Definition dürfen alle Checkboxen angekreuzt werden unabhängig davon ob andere angekreuzt wurden.

Also sind Radio Buttons schon richtig und wie oben erwähnt muss das Attribut name identisch sein für eine Gruppierung. 
 

Das gleiche geht übrigens auch mit Checkboxen (gruppieren mit name Attribut), da wirst du dann aber trotzdem alle ankreuzen können

Danke für die Info! :)

  • Autor

Naja, komme doch nicht so ganz weiter -.-

 

Code wurde wie folgt geändert :

 

    Gewichtung der schriftlichen Note:
    <br/>
    <br/>
    
    <input type="radio" name="prozentangabe" value="0,25">25%
    <input type="radio" name="prozentangabe" value="0,33">33%
    <input type="radio" name="prozentangabe" value="0,50">50%
    <input type="radio" name="prozentangabe" value="0,66">66%
    <input type="radio" name="prozentangabe" value="0,75">75% 

   </body>
</html>

 

Und:  

 

<html>
   <body>
      <?php
      $schriftlicheNote= $_POST["schrNote"];
      $sonstigeLeistung= $_POST["sonstNote"];
      $Gewichtung= $_POST["prozentangabe"];
      $Gewichtung2=1.00-$Gewichtung;
      $Gesamtnote1=($schriftlicheNote*$Gewichtung)+($sonstigeLeistung*$Gewichtung2);
      $Gesamtnote2=$Gesamtnote1/2;
      
     
      
      echo "<h2>Berechnung der Gesamtnote</h2>
            <table border=\"1\">
                <tr>
                    <td>schriftliche Note</td>
                    <td> $schriftlicheNote </td>
                </tr>
                <tr>
                    <td>Sonstige Leistung</td>
                    <td> $sonstigeLeistung</td>
                </tr>
                <tr>
                    <td>Gesamtnote</td>
                    <td>$Gesamtnote2</td>
                </tr>
                
            </table>";
      ?>
   </body>
</html>

 

 

 

Als Gesamtnote wird mir am Ende -23,5 angezeigt , was ja vorne und hinten nicht stimmen kann bei den Noten 2 und 3 :D Ich sehe da ehrlich gesagt auch irgendwie keinen Fehler, es scheint für mich alles logisch und korrekt zu sein.. Bekomme außerdem die Fehlermeldungen :  

 

Notice: A non well formed numeric value encountered in C:\xampp\htdocs\Zeugnisnotenberechnung_Backend.php on line 7

Notice: A non well formed numeric value encountered in C:\xampp\htdocs\Zeugnisnotenberechnung_Backend.php on line 8

 

Line 7 und 8 sind die beiden Lines:

$Gewichtung2=1.00-$Gewichtung;
 $Gesamtnote1=($schriftlicheNote*$Gewichtung)+($sonstigeLeistung*$Gewichtung2);

 

Warum ich die Values in den Radio Buttons geändert habe: Ich dachte mir es sei einfacher wenn ich statt den Prozentsatz einfach den jeweiligen Wert als Zahl angebe. Als nächstes musste ich ja dafür sorgen, dass die Gewichtung der sonstigen Leistung sich verändert, sobald die Gewichtung der schriftlichen Note angegeben wird, da beide Gewichtungen zusammen ja 1,00 bzw 100% sein müssen. Dementsprechend möchte ich halt, dass die Gewichtung von der schr. Note von 1,00 abgezogen wird und das Ergebnis davon soll dann die Gewichtung der sonstigen Note bilden.

Ich kenne mich zwar auch nicht wirklich mit PHP aus, aber du schreibst

vor 8 Stunden schrieb Whitehammer03:

value="0,25"

weiter unten im PHP Teil dann:

vor 8 Stunden schrieb Whitehammer03:

$Gewichtung2=1.00-$Gewichtung;

Sprich einmal hast du ein Komma als Trennzeichen, und einmal einen Punkt. Wie gesagt, ich weiß nicht, wie das in HTML und PHP ist, aber sowas kann in anderen Programmiersprachen zumindest problematisch sein.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.