Bonjour,
1) Concernant l'actualisation du contenu du composant
Datatable, la solution consiste à intercepter l’événement de mise à jour réussie d'un dossier pour actualiser la liste des consultations.
Si par exemple :
- Le formulaire de saisie d'un dossier a pour identifiant HTML 'form_dossier'.
- Le tableau d'affichage de la liste des consultations a pour identifiant 'datatable_consultations'.
Ajoutez en fin de fichier de la vue (nommée par exemple 'vue_dossiers.php') contenant la définition HTML du formulaire de saisie d'un dossier (<form id='form_dossier'...>), le code JavaScript suivant :
<script>
$(document).ready(function() {
$('#form_dossier').on('zdkformcomplete', function() {
/* Actualise le tableau des consultations à chaque mise à jour de dossier */
$('#datatable_consultations').zdkdatatable('refresh');
});
});
</script>
A noter que le tableau d'affichage des dossiers n'a pas besoin d'être actualisé car il est mis à jour automatiquement par le composant ZnetDK
Actionbar.
2) Concernant l'utilisation du composant
Autocomplete, la solution pour récupérer l'identifiant de l'élément sélectionné consiste à intercepter l’événement de sélection d'un élément afin d'affecter l'identifiant correspondant à un champ caché du formulaire.
Par exemple, le formulaire ci-dessous comprend le champ caché '
client_id' défini pour recevoir l'identifiant du client sélectionné via le composant
Autocomplete.
<form id="mon_formulaire" class='zdk-form' data-zdk-action="moncontroller:monaction">
<input name="client_id" type="hidden">
<label>Client</label>
<input class="zdk-autocomplete" type="text" name="client_nom" data-zdk-action="moncontroller:clients">
<button class="zdk-bt-save" type="submit">Enregistrer</button>
</form>
<script>
$(document).ready(function() {
$('#mon_formulaire input[name=client_nom]').on('zdkautocompleteselect', function(e,item) {
/* L'identifiant du client sélectionné est placé dans le champ caché 'client_id' */
$(this).find('input[name=client_id]').val($(item).data('value'));
});
});
</script>
Au clic du bouton "Enregistrer", l'identifiant du client sélectionné à travers le composant
Autocomplete est envoyé en AJAX au contrôleur dans la variable POST "
client_id".
En espérant vous avoir aidé à travers mes réponses,
Pascal MARTINEZ