Zum Inhalt springen
  • 0

Checkboxen - nur eine Auswahl?


Whitehammer03

Frage

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

8 Antworten auf diese Frage

Empfohlene Beiträge

  • 1

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1
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

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
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

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
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! :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
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! :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...