Moderator |
|
Je kan de categorie gewoon onthouden via $_POST. Het kan natuurlijk ook via $_SESSION of $_COOKIE als je dat leuk vindt.
<!-- http://www.sitemasters.be/?pagina=forum/index&ond=reply&cat=3&id=5115 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>moevie deetabees</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
/*
we onderscheiden 3 stadia:
1. je hebt nog niets geselecteerd (geen genre of film)
2. je hebt een genre geselecteerd (en je wilt dus een lijst van films zien)
3. je hebt een genre en een film geselecteerd (en je wilt dus een beschrijving van de film zien)
NB De informatie hier staat in arrays, normaal komen deze gegevens uit de database
*/
$genres = array(0 => "komedie", 1 => "horror", 2 => "drama");
$films = array(
0 => array(0 => "groundhog day", 1 => "the big lebowski"),
1 => array(0 => "the shining", 1 => "the ring"),
2 => array(0 => "bambi")
);
$omschrijvingen = array(
0 => array(0 => "Bill Murray beleeft dezelfde dag telkens opnieuw.", 1 => "Het wel en wee van bowler Lebowski"),
1 => array(0 => "Manische Jack Nicholson met bijl", 1 => "Japanse horror in Hollywood jasje"),
2 => array(0 => "Hmmm... lambchops")
);
// deze functie kan handig zijn
function selected($value, $item, $select=1) {
return ($select == 1 && isset($_POST[$item]) && $_POST[$item] == $value) ? " selected=\"selected\"" : "";
}
?>
<form name="frm" action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
<!-- genres worden altijd weergegeven, zorg dat de geselecteerde film wordt gereset! -->
genre: <select name="genre" onChange="document.forms['frm'].submit();">
<?php
// als er nog geen genre is geselecteerd
if(!isset($_POST['genre'])) {
?>
<option value="">selecteer genre:</option>
<?php
}
foreach($genres as $k => $v) {
?>
<option value="<?= $k ?>"<?= selected($k, "genre") ?>><?= $v ?></option>
<?php
}
?>
</select>
<?php
// is er een genre geselecteerd ? Zoja -> geef films van dat genre weer
if(isset($_POST['genre'])) {
?>
film: <select name="film" onChange="document.forms['frm'].submit();">
<?php
// was het genre veranderd ?
$select = $_POST['genre'] == $_POST['oude_genre'];
// als er nog geen film is geselecteerd of het genre is veranderd
if(!isset($_POST['film']) || $_POST['film'] == "" || !$select) {
?>
<option value="">selecteer film:</option>
<?php
}
foreach($films[$_POST['genre']] as $k => $v) {
?>
<option value="<?= $k ?>"<?= selected($k, "film", $select) ?>><?= $v ?></option>
<?php
}
?>
</select><br />
<!-- om de film te 'resetten' wanneer je van genre wisselt -->
<input type="hidden" name="oude_genre" value="<?= (isset($_POST['genre'])) ? $_POST['genre'] : "" ?>" />
<?php
// als er een film geselecteerd is, is er een omschrijving beschikbaar (mits het genre niet was veranderd)
if(isset($_POST['film']) && $select) {
?>
omschrijving: <?= $omschrijvingen[$_POST['genre']][$_POST['film']] ?>
<?php
} // einde film
} // einde genre
?>
</form>
</body>
</html>
<!-- http://www.sitemasters.be/?pagina=forum/index&ond=reply&cat=3&id=5115 --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>moevie deetabees</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <?php /* we onderscheiden 3 stadia: 1. je hebt nog niets geselecteerd (geen genre of film) 2. je hebt een genre geselecteerd (en je wilt dus een lijst van films zien) 3. je hebt een genre en een film geselecteerd (en je wilt dus een beschrijving van de film zien) NB De informatie hier staat in arrays, normaal komen deze gegevens uit de database */ $genres = array(0 => "komedie", 1 => "horror", 2 => "drama"); 0 => array(0 => "groundhog day", 1 => "the big lebowski"), 1 => array(0 => "the shining", 1 => "the ring"), ); 0 => array(0 => "Bill Murray beleeft dezelfde dag telkens opnieuw.", 1 => "Het wel en wee van bowler Lebowski"), 1 => array(0 => "Manische Jack Nicholson met bijl", 1 => "Japanse horror in Hollywood jasje"), 2 => array(0 => "Hmmm... lambchops") ); // deze functie kan handig zijn function selected($value, $item, $select=1) { return ($select == 1 && isset($_POST[$item]) && $_POST[$item] == $value) ? " selected=\"selected\"" : ""; } ?> <form name="frm" action="<?= $_SERVER['PHP_SELF'] ?>" method="post"> <!-- genres worden altijd weergegeven, zorg dat de geselecteerde film wordt gereset! --> genre: <select name="genre" onChange="document.forms['frm'].submit();"> <?php // als er nog geen genre is geselecteerd if(!isset($_POST['genre'])) { ?> <option value="">selecteer genre:</option> <?php } foreach($genres as $k => $v) { ?> <option value="<?= $k ?>"<?= selected($k, "genre") ?>><?= $v ?></option> <?php } ?> </select> <?php // is er een genre geselecteerd ? Zoja -> geef films van dat genre weer if(isset($_POST['genre'])) { ?> film: <select name="film" onChange="document.forms['frm'].submit();"> <?php // was het genre veranderd ? $select = $_POST['genre'] == $_POST['oude_genre']; // als er nog geen film is geselecteerd of het genre is veranderd if(!isset($_POST['film']) || $_POST['film'] == "" || !$select) { ?> <option value="">selecteer film:</option> <?php } foreach($films[$_POST['genre']] as $k => $v) { ?> <option value="<?= $k ?>"<?= selected($k, "film", $select) ?>><?= $v ?></option> <?php } ?> </select><br /> <!-- om de film te 'resetten' wanneer je van genre wisselt --> <input type="hidden" name="oude_genre" value=" <?= (isset($_POST['genre'])) ? $_POST['genre'] : "" ?>" /> <?php // als er een film geselecteerd is, is er een omschrijving beschikbaar (mits het genre niet was veranderd) if(isset($_POST['film']) && $select) { ?> omschrijving: <?= $omschrijvingen[$_POST['genre']][$_POST['film']] ?> <?php } // einde film } // einde genre ?> </form> </body> </html>
|