php arrays

Overzicht

Sponsored by: Vacatures door Monsterboard

Danny kong

danny kong

03/02/2016 14:00:44
Anchor link
zou iemand mij uit kunnen leggen hoe dit moet of wat ik verkeerd doe?

de vraag:
Tijdens de Olympische winterspelen zijn er verschillende sportdisciplines waarin sporters strijden voor medailles. Per sportdiscipline zijn er verschillende evenementen waaraan kan worden meegedaan. De organisatie wil een systeem waarbij de bezoeker op een snelle manier kan zien welke evenementen worden georganiseerd bij een bepaalde sportdiscipline.
Maak een programma waarbij de gebruiker aan de hand van een select box een sportdiscipline kan selecteren. Vervolgens dient aan de hand van de gekozen discipline middels het array de bijbehorende evenementen op het scherm te worden getoond.

korte uitleg:
Maak een select box, als je op de sport klikt krijg je de 5 opties in het beeld te zien.

mijn antwoord:
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
70
71
72
73
74
75
76
77
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Voer hier je naam in</title>
</head>
<body>
<?php

// 2-Dimensionaal Array Evenementen
$Evenementen = array
   (
   "Schaatsen"=>array
               (
               "Heren 500 meter",
               "Heren 1000 meter",
               "Heren 1500 meter",
               "Heren 5 Kilometer",
               "Vrouwen 500 meter",
               "Vrouwen 1000 meter",
               "Vrouwen 1500 meter",
               "Vrouwen 3000 meter"
               ),
   "Alpineskieen"=>array
               (
               "Slalom Mannen",
               "Slalom Vrouwen",
               "Reuzenslalom Mannen",
               "Reuzenslalom Vrouwen",
               "Super-G Mannen",
               "Super-G Vrouwen"
               ),
   "Snowboarden"=>array
               (
               "Slopestyle Mannen",
                  "Slopestyle Vrouwen",
               "Halfpipe Mannen",
               "Halfpipe Vrouwen",
               "Boardcross Mannen",
               "Boardcross Vrouwen",
               "Freestyle Mannen",
               "Freestyle Vrouwen"
               ),
    "IJshockey"=>array
               (
               "Kwalificatie Rondes",
                  "1/8 Finale",
               "1/4 Finale",
               "1/2 Finale",
               "Finale"
               ),
   "Rodelen"=>array
               (
               "Individueel Mannen",
                  "Individueel Vrouwen",
               "Dubbel Mannen",
               "Dubbel Vrouwen",
               "Teamestafette"
               )
     );


/* ----- Maak hier je PHP Opdracht ----- */



?>


<select name="$Evenementen">
    <option>"Schaatsen" . <?php echo $Evenementen[0]; ?></option>
    <option>Alpineskieen</option>
    <option>Snowboarden</option>
    <option>IJshockey</option>
    <option>Rodelen</option>
</select>

</body>
</html>

- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 03/02/2016 15:45:58 door - Ariën -
 
PHP hulp

PHP hulp

03/12/2024 20:42:35
 
Thomas van den Heuvel

Thomas van den Heuvel

03/02/2016 14:36:00
Anchor link
En welke technieken mogen allemaal in deze huiswerkopdracht ingezet worden? Enkel PHP? Of ook JavaScript / jQuery / AJAX / JSON / ... ? Mag de pagina ververst worden of moeten zaken direct "interactief" getoond worden?
 
Danny kong

danny kong

03/02/2016 14:42:24
Anchor link
nee echt alleen php, html enz. ik denk dat ze gewoon direct bij klik op het scherm moeten komen.
 
- Ariën  -
Beheerder

- Ariën -

03/02/2016 15:49:42
Anchor link
Om je even op weg te helpen, met foreach kan je een array uitlezen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
foreach($evenementen as $k=>$v) {
    echo '<option name="'.$k.'">'.$k.'</option>';
}


Hiermee lees de de eerste array met de sporten dan uit.
Gewijzigd op 03/02/2016 15:50:33 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

03/02/2016 15:53:14
Anchor link
Mja, PHP is een serverside scripting taal, je zult dus je selectie moeten POSTen (of wellicht beter is de GET methode in deze), en op grond van of dit gebeurd is of niet toon je de evenementen van de gekozen discipline.

Hier een mogelijke oplossing. Zorg wel dat je ook alles snapt, zodat je er enerzijds iets van opsteekt en je anderzijds niet door de mand valt dat je zelf geen inspanning hebt verricht:
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
// data
$Evenementen = array(
    "Schaatsen" => array(
        "Heren 500 meter",
        "Heren 1000 meter",
        "Heren 1500 meter",
        "Heren 5 Kilometer",
        "Vrouwen 500 meter",
        "Vrouwen 1000 meter",
        "Vrouwen 1500 meter",
        "Vrouwen 3000 meter",
    ),

    "Alpineskieen" => array(
        "Slalom Mannen",
        "Slalom Vrouwen",
        "Reuzenslalom Mannen",
        "Reuzenslalom Vrouwen",
        "Super-G Mannen",
        "Super-G Vrouwen",
    ),

    "Snowboarden" => array(
        "Slopestyle Mannen",
        "Slopestyle Vrouwen",
        "Halfpipe Mannen",
        "Halfpipe Vrouwen",
        "Boardcross Mannen",
        "Boardcross Vrouwen",
        "Freestyle Mannen",
        "Freestyle Vrouwen",
    ),

    "IJshockey" => array(
        "Kwalificatie Rondes",
        "1/8 Finale",
        "1/4 Finale",
        "1/2 Finale",
        "Finale",
   ),

   "Rodelen" => array(
        "Individueel Mannen",
        "Individueel Vrouwen",
        "Dubbel Mannen",
        "Dubbel Vrouwen",
        "Teamestafette",
    ),
);


// output escaping #yolo
function escape($in) {
    return htmlspecialchars($in, ENT_QUOTES, 'UTF-8');
}


// Content-Type
header('Content-Type: text/html; charset=UTF-8');
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Voer hier je naam in</title>
</head>
<body><?php
// geselecteerde discipline?
if (isset($_GET['discipline']) && array_key_exists($_GET['discipline'], $Evenementen)) {
    $discipline = $_GET['discipline'];
}
else {
    $discipline = false;
}

?>

<h1>Disciplines</h1>
<form action="<?php echo escape($_SERVER['PHP_SELF']) ?>" method="get" accept-charset="UTF-8">
<select name="discipline">
    <option value="">- selecteer -</option><?php
    foreach ($Evenementen as $k => $dummy) {
        $selected = ($k == $discipline ? ' selected="selected"' : '');
        ?>
<option value="<?php echo escape($k) ?>"<?php echo $selected ?>><?php echo escape($k) ?></option><?php
    }
?>
</select>
<button type="submit">toon evenementen</button>
</form><?php
if ($discipline !== false) {
    ?>
<h2>Evenementen voor <?php echo escape($discipline) ?></h2>
    <ul><?php
        foreach ($Evenementen[$discipline] as $evenement) {
            ?>
<li><?php echo escape($evenement) ?></li><?php
        }
    ?>
</ul><?php
}
?>
</body>
</html>
Gewijzigd op 03/02/2016 15:55:51 door Thomas van den Heuvel
 
Danny kong

danny kong

04/02/2016 09:31:26
Anchor link
Ik snap eerlijk gezegd niet veel van je antwoord ;p foreach komt me tevens wel bekend voor. maar het zou echt heel veel simpeler moeten zijn. het zou ongeveer moeten zoals de manier die ik onderin met select probeerde.
 
- Ariën  -
Beheerder

- Ariën -

04/02/2016 09:34:56
Anchor link
Je zult in iedergeval moeten controleren of je formulier verstuurd is met GET of POST.
 
Mike Inda

mike Inda

30/06/2016 09:37:06
Anchor link
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
<!DOCTYPE html>
<html>
<body>

<?php

    $config
= array(
        'ip' => '127.0.0.1',
        'dns' => 'localhost',
        'poort' => '80',
        'dir' => '/var/www/html'
);
        echo "<strong>KEY    WAARDE</strong>";
        echo "<br/>";
        foreach ($config as $key => $waarde) {
        echo $key . " " . $waarde;
        echo "<br/>";
}

?>

</body>
</html>


- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 30/06/2016 11:37:37 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

30/06/2016 11:38:26
Anchor link
@Mike, wat wil je precies zeggen met deze niet geheel relevante code?
 
Thomas van den Heuvel

Thomas van den Heuvel

30/06/2016 14:03:26
Anchor link
Verwijder dat (en de twee daaropvolgende) bericht(en) gewoon.

Het mist alle context, sluit niet aan bij het topic en bevat geen vraag. Weg ermee.
 
- Ariën  -
Beheerder

- Ariën -

30/06/2016 14:52:13
Anchor link
En het is bovendien een oud topic, dus ik sluit hem gewoon.
 
 

Dit topic is gesloten.



Overzicht

 
 

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.