Bonjour à tous,
je viens vers vous car je me tire les cheveux
Sur un formulaire, j'appelle mes éléments un par un dans ma vue.
Chaque ligne représente un service associé à 2 dates.
Quand on clique sur la checkbox correspondant au service, les dates de début et de fin apparaissent.
Quand je lis le code source de la page les id et les names prennent bien les attributs correspondant concaténé à l'id du service jusque là tout va bien.
Après je voulais via les dojo date que si je choisis une date de début par exemple 01/09/2012, on ne pourrait choisir la date de fin antérieure à la date de début.
Ca marche mais pour le 1er service, mais pas pour les suivants. Je ne vois pas pourquoi puisque tous mes attributs ont l'id du service sauf en effet dans le onchange ou l'id reste du coup à 1 et ne prend pas l'id des autres services.
Voici le code du formulaire dans ma vue.
Pourriez vous m'aider s'il vous plaît ?
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
32
33
34
35 <br /><br /> <div id="view-content"> <form action="" method="post" id="Ajoutadministratif"> <p><?=$this->form->name->render();?></p> <table > <?php foreach ($this->service as $service) : $this->form->start_time->setAttrib('id', 'start_time'.$service['id']); $this->form->start_time->setName('start_time'.$service['id']); $this->form->end_time->setAttrib('id', 'end_time'.$service['id']); $this->form->end_time->setName('end_time'.$service['id']); $this->form->start_time->setAttrib('onchange', 'dijit.byId("end_time'.$service['id'].'").constraints.min = this.get("value");'); $this->form->end_time->setAttrib('onchange', 'dijit.byId("start_time'.$service['id'].'").constraints.max = this.get("value");'); $this->form->checkbox_service->setName('checkbox_service'.$service['id']); $this->form->checkbox_service->setAttrib('onclick', 'afficherTime(this, '.$service['id'].')'); ?> <tr> <td><?php echo $service['name']; ?></td> <td><?=$this->form->checkbox_service->render();?></td> <td class="time<?=$service['id']?>" style="display:none;"><?=$this->form->start_time->render();?></td> <td class="time<?=$service['id']?>" style="display:none;"><?=$this->form->end_time->render();?></td> </tr> <?php endforeach; ?> </table> <?=$this->form->Ajouter->render();?> </form> </div> <script type="text/javascript"> function afficherTime(element, id) { if ($(element).is(":checked")) $('.time'+id).show(); else $('.time'+id).hide(); } </script>
Merci d'avance de votre aide.
Cordialement,
Partager