Bonjour à tous,
En vue de centraliser mon fichier langue et de faciliter la maintenance, je souhaite transférer une constante objet JS de PHP dans le fichier script JS.
Définition de la constante à transférer:
Code php : 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 define('DATA_TABLE_MSG', <<<DT_OBJ language: { processing: "Traitement en cours...", search: "Rechercher :", lengthMenu: "Afficher _MENU_ lignes.", /*"Afficher _MENU_ éléments",*/ info: "Affichage des lignes _START_ à _END_ sur un total de _TOTAL_", /*"Affichage de l'élement _START_ à _END_ sur _TOTAL_ éléments",*/ infoEmpty: "Affichage de la ligne 0 à 0 sur un total de 0", /*"Affichage de l'élement 0 à 0 sur 0 éléments",*/ infoFiltered: "(filtré d'un total de _MAX_ lignes)", /*"(filtré de _MAX_ éléments au total)",*/ infoPostFix: "", loadingRecords: "Chargement en cours...", zeroRecords: "Aucune ligne à afficher", /*"Aucun élément à afficher",*/ emptyTable: "Tableau vide", paginate: { first: "<<", /*"Premier"*/ previous: "<", /*"Précédent"*/ next: ">", /*"Suivant"*/ last: ">>" /*"Dernier"*/ }, aria: { sortAscending: ": activer pour trier la colonne par ordre croissant", sortDescending: ": activer pour trier la colonne par ordre décroissant" } } DT_OBJ );
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <script> const language = <?= DATA_TABLE_MSG; ?>; </script>EDIT: Ajout des erreurs signalées dans la console:
Code JavaScript : 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 // Nouvelle version $('#table').DataTable( { language } ); console.log(language); // Version d'origine // Traductions française (les lignes en commentaire correspondent à la traduction officielle de DataTable) /* $('#table').DataTable( { language: { processing: "Traitement en cours...", search: "Rechercher :", lengthMenu: "Afficher _MENU_ lignes.", //"Afficher _MENU_ éléments", info: "Affichage des lignes _START_ à _END_ sur un total de _TOTAL_", //"Affichage de l'élement _START_ à _END_ sur _TOTAL_ éléments", infoEmpty: "Affichage de la ligne 0 à 0 sur un total de 0", //"Affichage de l'élement 0 à 0 sur 0 éléments", infoFiltered: "(filtré d'un total de _MAX_ lignes)", //"(filtré de _MAX_ éléments au total)", infoPostFix: "", loadingRecords: "Chargement en cours...", zeroRecords: "Aucune ligne à afficher", //"Aucun élément à afficher", emptyTable: "Tableau vide", paginate: { first: "<<", //"Premier" previous: "<", //"Précédent" next: ">", //"Suivant" last: ">>" //"Dernier" }, aria: { sortAscending: ": activer pour trier la colonne par ordre croissant", sortDescending: ": activer pour trier la colonne par ordre décroissant" } } } ); */
';' attendu dans le fichier source PHP à la ligne const language = language: {.
':' attendu dans le fichier JS à la ligne $('#table').DataTable( { language } );.
Sur ce dernier point, si je mets les ':', j'ai une erreur de syntaxe.
Partager