MVC POO - Checkbox avec même valeur "name" à insérer en BDD
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:
Code:
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> |
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 "[]".
Cependant, le problème survient à l'étape d'après;
D'habitude, pour pouvoir récupérer ces valeurs, je procède ainsi :
Controlleur:
Code:
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';
}
} |
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.
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