Bonjour à toutes et à tous.
Je me permets de faire appel à vos lumières pour tenter de m'éclaircir sur un point sur lequel je bloque.
(Je pourrais éventuellement procéder autrement en terme d'HTML, mais je souhaite résoudre le problème ne serait-ce que pour le savoir-faire...)
J'ai un formulaire assez long dont je ne pense pas lister l'intégralité ici, mais à l'intérieur de celui-ci, il y a des champs checkbox, dont j'aimerais qu'ils comportent le même "name" voici l'exemple ci-dessous :
View:
J'ai bien saisi que pour pouvoir stocker plusieurs checkbox dans un même "name" il fallait les stocker sous forme de tableau, d'où les "[]".
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
24
25
26
27
28
29
30
31 <label for="inputIsoType">Type de chauffage</label> <div class="row"> <div class="col-lg-6"> <div class="input-group"> <span class="input-group-addon"> <input type="checkbox" aria-label="HeatType" name="customerIsoHeatType[]" id="inputHeatTypeGaz"> </span><label for="inputHeatTypeGaz" class="form-control">Gaz</label> </div> </div> <div class="col-lg-6"> <div class="input-group"> <span class="input-group-addon"> <input type="checkbox" aria-label="HeatType" name="customerIsoHeatType[]" id="inputHeatTypeFioul"> </span><label for="inputHeatTypeFioul" class="form-control">Fioul</label> </div> </div> <div class="col-lg-6"> <div class="input-group"> <span class="input-group-addon"> <input type="checkbox" aria-label="HeatType" name="customerIsoHeatType[]" id="inputHeatTypeElectricite"> </span><label for="inputHeatTypeElectricite" class="form-control">Electricité</label> </div> </div> <div class="col-lg-6"> <div class="input-group"> <span class="input-group-addon"> <input type="checkbox" aria-label="HeatType" name="customerIsoHeatType[]" id="inputHeatTypeBois"> </span><label for="inputHeatTypeBois" class="form-control">Bois</label> </div> </div> </div>
Cependant, le problème survient à l'étape d'après;
D'habitude, pour pouvoir récupérer ces valeurs, je procède ainsi :
Controlleur:
Toujours d'après les recherches Google, il faudrait effectuer un foreach pour récupérer les plusieurs checkbox si il y en a et ensuite effectuer le $_POST de celui-ci, mais c'est la que le problème intervient... je n'arrive pas à visualiser cette partie du code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public function addCustomerIso() { if (isset($_POST['addCustomerIso'])) { $customerIso = new CustomerIso([ 'heat_type' => $_POST['customerIsoHeatType'] ]); $this->customerIsoManager->add($customerIso); } else { echo 'Une erreur est survenue'; } }
Certains parlent même d'"implode" pour rassembler les éléments du tableau en string, sur papier, ça me paraît tout juste, mais à retranscrire c'est plus compliqué.
Le modèle quant à lui devrait rester pareil ? Il n'aura aucun impact pour la requête BDD ?
Je vous remercie énormément pour votre aide.
Cdt
Partager