hoe tellen van checkbox checked

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert Jansen

Robert Jansen

23/05/2017 16:16:29
Quote Anchor link
Hallo,

Heb code geschreven die het aantal geselecteerde checkboxen optelt.
Op dit moment laat de variable alleen "There are 1 checkboxe(s) are checked" zien ook als je meerdere checkboxen aangeklikt hebt.

Iedere checkbox heeft een andere naam, dit wil ik graag zo houden.

mijn vraag is: hoe kun je bijhouden hoeveel checkboxen er geselecteerd zijn, en dit tonen in de variable count?

alvast bedankt

de code is:
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
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);


if (isset($_POST["submit"])){

    $chkbox_count = 0;
    if (isset($_POST['oordeel1']) && $_POST['oordeel1'] == "j") $chkbox_count+1;
    if (isset($_POST['oordeel2']) && $_POST['oordeel1'] == "j") $chkbox_count+2;
    if (isset($_POST['oordeel3']) && $_POST['oordeel1'] && $_POST['oordeel2'] == "j") $chkbox_count+3;
    if (isset($_POST['oordeel4']) && $_POST['oordeel1'] && $_POST['oordeel2'] && $_POST['oordeel3']== "j") $chkbox_count+4;
    
$count = count($chkbox_count);
echo "There are ".$count." checkboxe(s) are checked";
if($count <= 3)
{

    echo "<script>alert('test1234');</script>";
}
    
}

?>

<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title></title>
</head>

<body>
<form action="index.php" id="checkbox" method="POST">
   <input type="checkbox" name="oordeel1" value="j"/>Akkoord
   <input type="checkbox" name="oordeel2" value="j"/>Akkoord
   <input type="checkbox" name="oordeel3" value="j"/>Akkoord
   <input type="checkbox" name="oordeel4" value="j"/>Akkoord
   <input type="submit" name="submit" value="verstuur" />
</form>
</body>
</html>
 
PHP hulp

PHP hulp

28/04/2024 21:13:06
 
- SanThe -

- SanThe -

23/05/2017 16:28:32
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$count
= 0;
for($i=1; $i<=4; $i++)
{

    if(isset($_POST['oordeel'.$i])) $count++;
}

echo $count;
?>
 
Robert Jansen

Robert Jansen

23/05/2017 18:41:01
Quote Anchor link
ok, bedankt voor de info.
Maar je zegt: $_POST['oordeel'.$i],
en de names van de checkbox zijn oordeel1 t/m oordeel4

waarom werkt dit dan ook?
 
- Ariën  -
Beheerder

- Ariën -

23/05/2017 19:56:12
Quote Anchor link
Omdat $i achtereenvolgens steeds 1,2,3 en 4 wordt in een loop.
http://php.net/for
Gewijzigd op 23/05/2017 21:20:40 door - Ariën -
 
- SanThe -

- SanThe -

23/05/2017 19:57:31
Quote Anchor link
Omdat $i van 1 naar 4 loopt en 'oordeel'.$i het aan elkaar plakt.
Dus als $i bv. 3 is wordt 'oordeel'.$i dus 'oordeel3'.
 
Thomas van den Heuvel

Thomas van den Heuvel

24/05/2017 14:07:12
Quote Anchor link
Waarom maak je van het oordeel-veld geen array? :/

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<form action="index.php" id="checkbox" method="POST">
   <input type="checkbox" name="oordeel[]" value="1"/>Akkoord
   <input type="checkbox" name="oordeel[]" value="2"/>Akkoord
   <input type="checkbox" name="oordeel[]" value="3"/>Akkoord
   <input type="checkbox" name="oordeel[]" value="4"/>Akkoord
   <input type="submit" name="submit" value="verstuur" />
</form>


Of desnoods met indexen, indien de value belangrijk is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<form action="index.php" id="checkbox" method="POST">
   <input type="checkbox" name="oordeel[1]" value="j"/>Akkoord
   <input type="checkbox" name="oordeel[2]" value="j"/>Akkoord
   <input type="checkbox" name="oordeel[3]" value="j"/>Akkoord
   <input type="checkbox" name="oordeel[4]" value="j"/>Akkoord
   <input type="submit" name="submit" value="verstuur" />
</form>


En maak gebruik van labels, dat is zoveel gebruiksvriendelijker, vooral als iemand een heleboel checkboxen moet afvinken :).
 



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.