problème dojo.date sur onchange dans foreach
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.
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 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> |
Pourriez vous m'aider s'il vous plaît ?
Merci d'avance de votre aide.
Cordialement,