views/timesheet/newtask.
= $form->field($model, 'tsh_cliId')->widget(Select2::class, [
'options' => ['placeholder' => 'Sélectionner un client...'],
'pluginOptions' => [
'allowClear' => true,
'minimumInputLength' => 2, // Nombre minimum de caractères avant la recherche
'ajax' => [
'url' => \yii\helpers\Url::to(['timesheet/list']),
'dataType' => 'json',
'data' => new JsExpression('function(params) { return {q:params.term}; }'),
'processResults' => new JsExpression('function(data) {
return {
results: $.map(data, function (item) {
return {
id: item.cli_ID,
text: item.cli_nom
};
})
};
}'),
],
'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
'templateResult' => new JsExpression('function(client) { return client.text; }'),
'templateSelection' => new JsExpression('function (client) { return client.text; }'),
'tags' =>true,
],
]); ?>
= $form->field($model, 'tsh_ctrId')->dropDownList([], ['prompt' => 'Sélectionner un contrat', 'id' => 'contrat-dropdown']);
// JS pour gérer le changement de client et charger les contrats
$js = <<Sélectionner une référence'); // Option par défaut
// Ajouter les nouvelles options
$.each(data, function(key, value) {
contrats.append('');
});
}
});
});
JS;
$this->registerJs($js);
?>
http://localhost/timesheet/web/index.php?r=timesheet/getcontrat&clientid=16
[{"ctr_id":928,"ctr_affiche":"2023-007106 - Site web avec CMS"},{"ctr_id":929,"ctr_affiche":"2023-007107 - Noms de domaine - Hébergement"},{"ctr_id":930,"ctr_affiche":"2023-007107 - Noms de domaine - Hébergement"},{"ctr_id":1281,"ctr_affiche":"2024-007539 - Noms de domaine - Hébergement"}]
views/timesheet/default.php
date
debut
fin
duree
client
contrat
type
commentaire
total des heures:
views\timesheet\_chercheuser.php
/* Selection simple de l'utilisateur dans la liste déroulante */
title = 'Test Dropdown';
$this->params['breadcrumbs'][] = $this->title;
?>
['viewselecteduser'],
'method' => 'post',
]); ?>
= Html::encode($this->title) ?>
Liste Utilisateurs
'Sélectionnez un utilisateur', 'class' => 'form-control'] // Options HTML
);
?>