liste déroulante

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : liste déroulante

Re: liste déroulante

par mbike » 03 mars 2019, 22:11

Merci de ta réponse je vais essayer de suivre ta logique

Re: liste déroulante

par kevin254kl » 03 mars 2019, 20:42

Salut,

"je ne veux pas de code parfait mais juste m’expliquer le chemin à prendre pour le code marche." Très bonne état d'esprit :)
Voilà une ébauche avec des commentaires

Code : Tout sélectionner

<?php // initialisation $films = array( '2010' => array( array('Inception','descriptio 001'), array('Skyline','descriptio 002'), array('Monsters','descriptio 003'), array('Predators','descriptio 004'), array('Repo Men','descriptio 005') ), '2011' => array( array('Eva','descriptio 001'), array('Gantz','descriptio 002'), array('Hell','descriptio 003'), array('Super 8','descriptio 004'), array('Time Out','descriptio 005') ) ); $results = []; // on check si on à un paramètre get if(!empty($_GET['annee'])){ // si l'indexe de l'année existe dans le tableau ex $films[210] alors !empty($films[$_GET['annee']]) retourne vraie sinon faux if(!empty($films[$_GET['annee']])){ // on garde l'année en index et onr écupère les données $results[$_GET['annee']] = $films[$_GET['annee']]; } } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>liste deroulante</title> </head> <body> <form action="#" method="get"> <select name="annee"> <option>choissisez une annee</option> <option value="2005">2005</option> <option value="2010">2010</option> <option value="2012">2012</option> </select> <input type="submit" name="submit" value="rechercher"> </form> <?php // si on a a des résultats if(count($results) > 0): echo ' <h3>les films ..</h3>'; foreach($results as $key => $result): // notre clé de tableau est l'année echo '<table>'; echo '<tr> <th>' ; echo $key; echo ' </th> </tr>'; // on a un tableau à deux dimenssions foreach($result as $film): // je commence ma ligne 1er film, second ... echo '<tr>'; foreach($film as $data): // ma colonne echo '<td>'. $data . '</td>'; endforeach; echo '</tr>'; endforeach; echo '</table>'; endforeach; else: echo '<p>Pas de films enregistrés</p>'; endif; ?> </body> </html>
Si tu veux progresser comprend la façon dont j'ai procédé et essaie de le reproduire.
C'est loin d'être une solution parfaite c'est juste fonctionnel, tu peux l'améliorer :)

Re: liste déroulante

par mbike » 03 mars 2019, 16:56

juste une petite rectification le code ci-dessus n'est pas correct , voici le bon

<?php
$films = array(
'2010' => array(
array('Inception','descriptio 001'),
array('Skyline','descriptio 002'),
array('Monsters','descriptio 003'),
array('Predators','descriptio 004'),
array('Repo Men','descriptio 005')
),
'2011' => array(
array('Eva','descriptio 001'),
array('Gantz','descriptio 002'),
array('Hell','descriptio 003'),
array('Super 8','descriptio 004'),
array('Time Out','descriptio 005')
)

);
$results[];
if(isset($_GET['year'])){
foreach ($films as $film){
if(film['year'] == $_GET['annee']){
$results[] = $film;
}
}
}

?>

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>liste deroulante</title>
</head>
<body>
<form action="index.php" method="get">

<select name="annee">
<option>choissisez une annee</option>
<option value="2005">2005</option>
<option value="2010">2010</option>
<option value="2012">2012</option>
</select>
<input type="submit" name="submit" value="rechercher">
</form>

<?php
if(count($results)):
<p>les films par année</p>
foreach($results as $result):
<p>
=$result['annee'];
</p>
endforeach;
else:
<p>Pas de films enregistrés</p>
endif;
?>

</body>
</html>

liste déroulante

par mbike » 03 mars 2019, 16:46

Bonjour à tous
Je voudrais de l’aide afin de résoudre ce problème, je ne veux pas de code parfait mais juste m’expliquer le chemin à prendre pour le code marche.
Le but est d’afficher les films disponibles par année à chaque fois que l’on clique sur rechercher. Je sais que qu’il y a des incohérences me diront certains, eh bien c ést parce que je suis encore débutant.
Tout aide sera la bienvenue
Merci

Voici mon code


<?php
$films = array(
'2010' => array(
array('Inception','descriptio 001'),
array('Skyline','descriptio 002'),
array('Monsters','descriptio 003'),
array('Predators','descriptio 004'),
array('Repo Men','descriptio 005')
),
'2011' => array(
array('Eva','descriptio 001'),
array('Gantz','descriptio 002'),
array('Hell','descriptio 003'),
array('Super 8','descriptio 004'),
array('Time Out','descriptio 005')
)

);
$results[];
if(isset($_GET['year'])){
foreach ($films as $film){
if(film['year'] == $_GET['annee']){
$results[] = $film;
}
}
}

?>

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>liste deroulante</title>
</head>
<body>
<form action="index.php" method="get">

<ul>
<li><a href="index.php?year=2005">2005</a></li>
<li><a href="index.php?year=2010">2010</a></li>
<li><a href="index.php?year=2015">2015</a></li>
</ul>


<select name="annee">
<option>choissisez une annee</option>
<option value="2005">2005</option>
<option value="2010">2010</option>
<option value="2012">2012</option>
</select>
<input type="submit" name="submit" value="rechercher">
</form>

<?php
if(count($results)):
<p>les films par année</p>
foreach($results as $result):
<p>
=$result['annee'];
</p>
endforeach;
else:
<p>Pas de films enregistrés</p>
endif;
?>

</body>
</html>