Kom er niet uit met cijfers berekenen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Kirsten J

Kirsten J

12/06/2019 22:21:46
Quote Anchor link
cijfer = ((score / maximum_score) * 8,5) + 1,5 waardoor het 7,45 is <- correct -> afgerond
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
round($cijfer, 1);
-> bij l dan weer half punt erbij of H een half punt eraf. Het mag dus niet boven de 10 uitkomen
 
PHP hulp

PHP hulp

23/04/2024 21:36:34
 
Ramon van Dongen

Ramon van Dongen

13/06/2019 09:47:42
Quote Anchor link
Dus feitelijk kom je op zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
// alleen als de REQUEST_METHOD 'POST' is
if($_SERVER['REQUEST_METHOD'] == "POST"){

$cijfers = array(); // lege array maken

    if($_POST['maximum_score'] > 0){ // maximum score moet hoger dan 0 zijn

        // door de ingevulde scores heen lopen

        foreach($_POST['score'] AS $id => $score){
            
            if(trim($score) !== '' AND isset($_POST['niveau'][$id])){ //float($score) > 0 AND
            
                // bepalen hoeveel er extra bij moet komen

                if($_POST['niveau'][$id] == 'L'){         $extra = 0.5;    }
                elseif($_POST['niveau'][$id] == 'H'){     $extra = -0.5;    }
                else{                                    $extra = 0;        }
            
                // de cijfer berekening formule
                $cijfers[$id] = round(((($score/$_POST['maximum_score']) * 8.5) + 1.5 + $extra),1);
                
                // als cijfer boven de 10 uit zou komen, terug op 10 zetten
                if($cijfers[$id] > 10){
                    $cijfers[$id] = 10;
                }        
            }        
        }
    }
}

?>

<!DOCTYPE html>
<html>
<body>
<form method="post">
<label for="maximum_score">Maximum score:</label>
<input type="number" id="maximum_score" name="maximum_score" <?php if(isset($_POST['maximum_score'])){ echo 'value="'.$_POST['maximum_score'].'"'; } ?>>
<table>
<tr>
  <th>Nr</th>
  <th>Naam</th>
  <th>Score</th>
  <th>Niveau</th>
  <th>Cijfer</th>
</tr>
<?php

    // aantal deelnemers
    $aantal = 4;
    
    for($i = 1; $i <= $aantal; $i++){

        echo '<tr>
                  <td>'
.$i.'</td>
                  <td><input type="text" name="naam['
.$i.']" '.(isset($_POST['naam'][$i]) ? 'value="'.$_POST['naam'][$i].'"' : '').'></td>
                  <td><input type="number" name="score['
.$i.']" '.(isset($_POST['score'][$i]) ? 'value="'.$_POST['score'][$i].'"' : '').'></td>
                  <td>
                     <input type="radio" name="niveau['
.$i.']" value="L" '.((isset($_POST['niveau'][$i]) AND $_POST['niveau'][$i] == 'L') ? 'checked="checked"' : '').'>L
                     <input type="radio" name="niveau['
.$i.']" value="M" '.((isset($_POST['niveau'][$i]) AND $_POST['niveau'][$i] == 'M') ? 'checked="checked"' : '').'>M
                     <input type="radio" name="niveau['
.$i.']" value="H" '.((isset($_POST['niveau'][$i]) AND $_POST['niveau'][$i] == 'H') ? 'checked="checked"' : '').'>H
                  </td>
                  <td>'
.(isset($cijfers[$i]) ? $cijfers[$i] : '').'</td>
                </tr>'
;
    }

?>

</table>
<input type="submit" value="Klikkie klikkie">
</form>
</body>
</html>


Phphulp lijnt het niet helemaal netjes uit. Probeer het eens uit.
 
Kirsten J

Kirsten J

13/06/2019 18:06:46
Quote Anchor link
Bedankt voor je hulp Ramon! Het moet hiermee wel lukken #crossfingers. Ik ben gelukkig nog wel aanwezig op het forum :)
Gewijzigd op 13/06/2019 18:08:01 door Kirsten J
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.