Salut,
Je tente de mettre en place une liste checkbox relationnelle.
J'explique:
J'ai 3 tables une table contenant des participants, une autre des évènements et une dernière permettant de faire la relation.
J'utilise la vue edit des participants pour les affecter à un évènements via une liste de checkbox.
Dans la vue je présente la chose comme ça
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 public function _edit(){ $tMessage=$this->processSave(); //On liste les informations propres au participant $oParticipant=model_participants::getInstance()->findById( _root::getParam('id') ); //On liste tous les évènements connus et actifs $$tJoinEvents=model_events::getInstance()->getSelect(); //On liste toutes les relations connus entre le participant et les évènements $tJoinIdEvents=model_events::getInstance()->getSelectIdEvent( _root::getParam('id')); $oView=new _view('membres::edit'); $oView->tJoinEvents=$$tJoinEvents; $oView->tJoinIdEvents=$tJoinIdEvents; $oView->oParticipants=$oParticipants; $oView->tId=model_participants::getInstance()->getIdTab(); $oPluginXsrf=new plugin_xsrf(); $oView->token=$oPluginXsrf->getToken(); $oView->tMessage=$tMessage; $this->oLayout->add('main',$oView); }
Quand je soumets mon formulaire j'obtiens donc parmi d'autres valeurs
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 [...] <div class="col-sm-4"> <?php foreach ($this->tJoinEvents as $key => $sNameEvent) :?> <div class="checkbox"> <label> <INPUT type="checkbox" name="<?php echo 'Event_'.$key;?>" value="1" <?php if(in_array($key, $this->tJoinIdEvents)) :?> checked="checked" <?php endif;?> > <?php echo $sNameEvent; ?> </label> </div> <?php endforeach;?> </div> [...]
qui correspondent a mes checkbox cochés
Code : Sélectionner tout - Visualiser dans une fenêtre à part [...]["Event_2"]=> string(1) "1" ["Event_3"]=> string(1) "1" [...]
La où je coince c'est comment sauvegarder proprement ces valeurs dans la table relationnelle
Auriez-vous une piste à me proposer ?
Merci d'avance
Partager