Faire un echo dans un script JS [Résolu]

Signaler
Messages postés
245
Date d'inscription
mercredi 1 juin 2016
Statut
Membre
Dernière intervention
24 août 2020
-
Messages postés
245
Date d'inscription
mercredi 1 juin 2016
Statut
Membre
Dernière intervention
24 août 2020
-
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


Cordialement,
Roche Corentin

1 réponse

Messages postés
14710
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
31 août 2020
248
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.
Messages postés
245
Date d'inscription
mercredi 1 juin 2016
Statut
Membre
Dernière intervention
24 août 2020
18
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 !
Messages postés
29438
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 août 2020
2 746 >
Messages postés
245
Date d'inscription
mercredi 1 juin 2016
Statut
Membre
Dernière intervention
24 août 2020

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,
Messages postés
245
Date d'inscription
mercredi 1 juin 2016
Statut
Membre
Dernière intervention
24 août 2020
18 >
Messages postés
29438
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 août 2020

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>
Messages postés
29438
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 août 2020
2 746 >
Messages postés
245
Date d'inscription
mercredi 1 juin 2016
Statut
Membre
Dernière intervention
24 août 2020

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.
Messages postés
245
Date d'inscription
mercredi 1 juin 2016
Statut
Membre
Dernière intervention
24 août 2020
18 >
Messages postés
29438
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 août 2020

Effectivement ... Erreur de base sorry !

Merci encore