Bonjour, j'ai un problème pour afficher ma liste déroulante dans mon formulaire. Je pense que le problème se situe plus au niveau de ma requête. Si quelqu'un peut m'aider à afficher les catégories et leurs sous-catégories...
Voici ma base de données:
id id_parent nom_fr nom_en in_form 1 0 Accueil ... 0 ... 2 0 Immobilier ... 1 201 2 Vente de Maisons ... 1 202 2 Location de Maisons ... 1 203 2 Vente d Appartements ... 1 204 2 Location d Appartements ... 1 205 2 Bureaux ... 1 206 2 Terrains ... 1 ... 3 0 Véhicules .. . 1 301 3 Voitures ... 1 301 3 Motos ... 1 302 3 Accessoires ... 1 ... 4 0 Multimedia ... 1 401 4 Téléphones ... 1 402 4 Télévisions ... 1 ... 5 0 ... ... 1 ... 9 0 Contact ... 0
Ma fonction:
Page du formulaire pour afficher les résultats:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 function getCategories(){ global $bdd; $sql_lang = (!empty(($_SESSION['lang']) && in_array($_SESSION['lang'], ['fr','en','es']) ))? $_SESSION['lang'] : 'fr'; $sql= "SELECT id, id_parent, nom_".$sql_lang." AS nom FROM categories WHERE id_parent=0 AND in_form=1 ORDER BY id "; try{ $req = $bdd->prepare($sql); $req->execute(); $res = $req->fetchAll(PDO::FETCH_ASSOC); }catch(Exception $e){ echo "Erreur dans la requête " . $sql; $res = false; } return $res; }
Et ce que j'obtiens en photo:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <select name="categorie"> <option value="" disabled selected><?php echo $lang['categorie'];?></option> <?php $categories= getCategories(); foreach($categories as $C){ echo "<optgroup label ='".$C['id_parent']."'> ".$C['nom']." '<option value='".$C['id']."'>".$C['nom']."</option>' </optgroup>"; } ?> </select>
![]()
Partager