Faire un echo dans un script JS

Résolu/Fermé
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 - Modifié le 23 août 2020 à 21:26
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 - 24 août 2020 à 13:33
Bonjour,

Je souhaite si c'est possible de faire un écho dans un <script>/script>

Je m'explique j'ai récupéré un code permettant de me crée un diagramme.

Qui sont deux % qui au total fait 100%.

Actuellement ces données sont fixe dans le script mon but et de pouvoir faire un "écho" dans le script avec les valeurs calculer précédemment. Pour les calculs aucun problème !

Mais la question est comment je peux faire pour écrire ces résultats a la place des données actuelles ?

Le code :

 try {
        // Percent Chart 2
        var ctx = document.getElementById("percent-chart2");
        if (ctx) {
          ctx.height = 209;
          var myChart = new Chart(ctx, {
            type: 'doughnut',
            data: {
              datasets: [
                {
                  label: "My First dataset",
                  data: [50, 50],
                  backgroundColor: [
                    '#00b5e9',
                    '#fa4251'
                  ],
                  hoverBackgroundColor: [
                    '#00b5e9',
                    '#fa4251'
                  ],
                  borderWidth: [
                    0, 0
                  ],
                  hoverBorderColor: [
                    'transparent',
                    'transparent'
                  ]
                }
              ],
              labels: [
                'Products',
                'Services'
              ]
            },
            options: {
              maintainAspectRatio: false,
              responsive: true,
              cutoutPercentage: 87,
              animation: {
                animateScale: true,
                animateRotate: true
              },
              legend: {
                display: false,
                position: 'bottom',
                labels: {
                  fontSize: 14,
                  fontFamily: "Poppins,sans-serif"
                }
    
              },
              tooltips: {
                titleFontFamily: "Poppins",
                xPadding: 15,
                yPadding: 10,
                caretPadding: 0,
                bodyFontSize: 16,
              }
            }
          });
        }
    
      } catch (error) {
        console.log(error);
      }



C'est a la ligne "data: [50, 50]," a la place j'aimerais faire un genre de :
data: [<?php echo $var1 ;?>, <?php echo $var2;?>],


Par exemple... Je ne connais pas du tout les limite de JS ..

Merci d'avance

Configuration: Windows / Opera 70.0.3728.119


1 réponse

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
23 août 2020 à 21:56
PHP génère le code de la page (HTML, CSS, JS, ...)
Donc pas de raison qu'un "echo" dans ton code à la position du code JS ne te permette pas de mettre ça dans le code JS.
1
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 39
Modifié le 23 août 2020 à 22:31
Ok enfaîte cela fonctionne bien ... c'est une erreur dans une autres partie de mon code sorry !

Juste si je déplace mon code JS dans un fichier appart.. du genre
<script src="js/test.js"></script>

(A la fin de mon fichier index.php)

Et qu'au début de mon fichier index.php je définie les variables utiliser dans le test.js.
Cela va fonctionner ou je suis obliger de inclure mon code js de cette façons :
<script>le script</script>


Merci !
0
jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649 > CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023
24 août 2020 à 00:29
Bonjour,

Pas de souci pour mettre du code php tel que tu le fais dans du JS.
Par contre, il faut créer ta variable data en dehors d'un fichier .js ( le php ne s'éxecutant que dans des fichiers au format .php ou phtml .... à moins de faire de la config dans l'apache...mais je te le déconseille... )
Mois je ferais, dans ton fichier index.php
<script>
var datas = [<?php echo $var1 ;?>, <?php echo $var2;?>] ;
</script>


Et dans ton fichier .js
data: datas,
0
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 39 > jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024
24 août 2020 à 11:56
Je viens de faire le test cela ne passe pas ..

J'ai bien remplacer ça
data: [<?php echo $var1 ;?>, <?php echo $var2;?>],
par ça :
data: datas,
dans mon fichier js\graphique-pro-part.js

et dans mon fichier php j'ai bien :
    <script src="js/graphique-pro-part.js"></script>
    <script>
      var datas = [<?php echo $pourcentage_de_client_PRO ;?>, <?php echo $pourcentage_de_client_PART ;?>];
    </script>
0
jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649 > CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023
24 août 2020 à 12:53
Une page web étant lue de haut en bas par le navigateur....... si tu places l'initialisation de ta variable après avoir chargé ton js..ça ne passera pas.
0
CorentinRoche Messages postés 271 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 12 juin 2023 39 > jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024
24 août 2020 à 13:33
Effectivement ... Erreur de base sorry !

Merci encore
0