Bonjour, merci de votre réponse. C'est vrai que j'aurai pu mettre les 3 listes dans un form mais vu que c'est une sorte de menu je voulais pas mettre en première solution mes listes dans un form (pour le coup, je pense que j'ai une réflexion un peu bête).
Pour ce qui est de l'ajax, mes connaissances sont très faibles et cela m'a l'air compliqué mais c'est vrai que c'est une solution.
J'ai parlé à mon tuteur (j'ai oublié de préciser que j'étais en stage), et il m'a expliqué que je n'étais pas obligé de supprimer mes variables sessions et que je pouvais juste les vider tout simplement pour remettre à zéro en fesant une redirection.
Donc au final, j'ai trouvé une solution en javascript toute bête, désolé si au final ça n'est pas du PHP la solution.
Je montre ce que j'ai fais ça servira peut être à quelqu'un, j'ai juste fait un onclick :
<?php
// On liste les niveaux
$niveau = Livre::getNiveau($bdd);
$keyn= array_keys($niveau);
?>
<select name="niveau" id="niveau" onchange="javascript:document.location.href='catalogue.php?genre=' + this.options[this.selectedIndex].value;">
<option value="aucunfiltre">-- Tous les niveaux --</option>
<?php
for($k=0;$k<count($niveau);$k++){
echo '<option value="'.$keyn[$k].'"'.($_SESSION['genre'] == $keyn[$k] ? ' selected' : '').'>';
echo $niveau[$k+1].'</option>';
}
?>
</select>
<?php
//On liste les catégories
$categories = Livre::getCategories($bdd);
$key = array_keys($categories);
?>
<select name="genre" id="genre" onchange="javascript:document.location.href='catalogue.php?cate=' + this.options[this.selectedIndex].value;">
<option value="aucunfiltre">-- Tous les supports --</option>
<?php
for($i=0;$i<count($categories);$i++){
echo '<option value="'.$key[$i].'"'.($_SESSION['cate'] == $key[$i] ? ' selected' : '').'>';
echo $categories[$i+1].'</option>';
// echo '<option value="'.$key[$i].'">';
// echo $categories[$i+1].'</option>';
}
?>
</select>
<?php
// On liste les langues
$langage = Livre::getLangage($bdd);
$keyl = array_keys($langage);
?>
<select name="langage" id="langage" onchange="javascript:document.location.href='catalogue.php?lang=' + this.options[this.selectedIndex].value;">
<option value="aucunfiltre">-- Toutes les langues --</option>
<?php
for($j=0;$j<count($langage);$j++){
echo '<option value="'.$keyl[$j].'"'.($_SESSION['lang'] == $keyl[$j] ? ' selected' : '').'>';
echo $langage[$j+1].'</option>';
// echo '<option value="'.$keyl[$j].'">';
// echo $langage[$j+1].'</option>';
}
?>
</select>
<input type="button" onclick="javascript:document.location.href='catalogue.php?genre&cate&lang';" value="Supprimer le filtre" />
Bonjour, merci de votre réponse. C'est vrai que j'aurai pu mettre les 3 listes dans un form mais vu que c'est une sorte de menu je voulais pas mettre en première solution mes listes dans un form (pour le coup, je pense que j'ai une réflexion un peu bête).
Pour ce qui est de l'ajax, mes connaissances sont très faibles et cela m'a l'air compliqué mais c'est vrai que c'est une solution.
J'ai parlé à mon tuteur (j'ai oublié de préciser que j'étais en stage), et il m'a expliqué que je n'étais pas obligé de supprimer mes variables sessions et que je pouvais juste les vider tout simplement pour remettre à zéro en fesant une redirection.
Donc au final, j'ai trouvé une solution en javascript toute bête, désolé si au final ça n'est pas du PHP la solution.
Je montre ce que j'ai fais ça servira peut être à quelqu'un, j'ai juste fait un onclick :
[php]<?php
// On liste les niveaux
$niveau = Livre::getNiveau($bdd);
$keyn= array_keys($niveau);
?>
<select name="niveau" id="niveau" onchange="javascript:document.location.href='catalogue.php?genre=' + this.options[this.selectedIndex].value;">
<option value="aucunfiltre">-- Tous les niveaux --</option>
<?php
for($k=0;$k<count($niveau);$k++){
echo '<option value="'.$keyn[$k].'"'.($_SESSION['genre'] == $keyn[$k] ? ' selected' : '').'>';
echo $niveau[$k+1].'</option>';
}
?>
</select>
<?php
//On liste les catégories
$categories = Livre::getCategories($bdd);
$key = array_keys($categories);
?>
<select name="genre" id="genre" onchange="javascript:document.location.href='catalogue.php?cate=' + this.options[this.selectedIndex].value;">
<option value="aucunfiltre">-- Tous les supports --</option>
<?php
for($i=0;$i<count($categories);$i++){
echo '<option value="'.$key[$i].'"'.($_SESSION['cate'] == $key[$i] ? ' selected' : '').'>';
echo $categories[$i+1].'</option>';
// echo '<option value="'.$key[$i].'">';
// echo $categories[$i+1].'</option>';
}
?>
</select>
<?php
// On liste les langues
$langage = Livre::getLangage($bdd);
$keyl = array_keys($langage);
?>
<select name="langage" id="langage" onchange="javascript:document.location.href='catalogue.php?lang=' + this.options[this.selectedIndex].value;">
<option value="aucunfiltre">-- Toutes les langues --</option>
<?php
for($j=0;$j<count($langage);$j++){
echo '<option value="'.$keyl[$j].'"'.($_SESSION['lang'] == $keyl[$j] ? ' selected' : '').'>';
echo $langage[$j+1].'</option>';
// echo '<option value="'.$keyl[$j].'">';
// echo $langage[$j+1].'</option>';
}
?>
</select>
<input type="button" onclick="javascript:document.location.href='catalogue.php?genre&cate&lang';" value="Supprimer le filtre" />[/php]