Visualizzazione risultati 1 fino 7 di 7

Discussione: Codice PHP in uno script

  1. #1
    Guest

    Predefinito Codice PHP in uno script

    Ciao a tutti,

    mi sapete dire come inserire delle semplici variabili numeriche PHP all'interno di uno script?
    Lo script in questione è preso da Chartjs e riguarda la creazione di un grafico radar:
    script_grafico.js
    Codice:
    $(document).ready(function(){
    
    var ctx2 = document.getElementById("myChart2").getContext("2d");
    
    var data2 = {
    	labels : ["A","B","C","D","E","F","G"],
    	datasets : [
    		{
    			label: "Label 1",
    			fillColor : "rgba(50,50,50,0.5)",
    			strokeColor : "rgba(220,220,220,1)",
    			pointColor : "red",
    			pointStrokeColor : "#fff",
    			data : [1,70,50,35,27,60,50] /*Al posto dei numeri devo inserire le variabili $a, $b, $c, ...*/
    		},
    	]
    }
    
    var myNewChart2 = new Chart(ctx2).Radar(data2);
    var ctx2 = $("#myChart2").get(0).getContext("2d");
    var myNewChart2 = new Chart(ctx2);
    new Chart(ctx2).Radar(data2,options);
    
    });
    Grazie per l'aiuto

  2. #2
    Guest

    Predefinito

    Speiga meglio cosa vorresti fare, altrimenti non è così immediato mischiare script serverside (PHP) e clientside (JS).

    Nel caso più semplice:

    Codice PHP:

    data : [<?php echo "$a,$b,...,$n"; ?>]
    Ultima modifica di vplaza : 24-04-2015 alle ore 17.33.47

  3. #3
    Guest

    Predefinito

    In poche parole ho un file php in cui sono presenti queste variabili che voglio inserire nello script, così che i loro valori siamo mostrati sotto forma di grafico radar, come in questo esempio. In questo stesso file php vorrei stampare a video il grafico col tag canvas, utilizzando il file esterno js per le istruzioni riguardanti il grafico.

    Nel file php il codice è di questo tipo:
    Codice PHP:
    <script type="text/javascript" charset="utf-8" src='js/jquery-1.10.2.min.js'></script>
    <script type="text/javascript" charset="utf-8" src='js/Chart.js'></script>
    <script type="text/javascript" charset="utf-8" src='js/script_grafico.js'></script>

    <?php
    $a
    = 1;
    $b= 2;
    $c= 3;
    $d= 4;
    $e= 5;
    $f= 6;
    $g= 7;

    //Canvas grafico radar
    echo "<canvas id='myChart2' width='280' height='280'></canvas>";
    ?>
    Mentre il file js è quello mostrato prima.
    Sul sito http://www.chartjs.org il codice d'esempio è mostrato con valori numerici preimpostati, nel mio caso i valori sono frutto di calcoli precedenti e che sono racchiusi in 7 variabili.
    Ho provato il caso che mi hai scritto ma il grafico non compare. Sono sicuro del resto del codice perchè con i valori fissi il grafico si vede correttamente.
    Ultima modifica di fmeworldtools : 24-04-2015 alle ore 19.08.21

  4. #4
    Guest

    Predefinito

    Visto che i dati li hai inseriti in script_grfico.js.

    prova a sostituire questo:

    Codice PHP:
    <script type="text/javascript" charset="utf-8" src='js/jquery-1.10.2.min.js'></script>
    <script type="text/javascript" charset="utf-8" src='js/Chart.js'></script>
    <script type="text/javascript" charset="utf-8" src='js/script_grafico.js'></script>

    <?php
    $a
    = 1;
    $b= 2;
    $c= 3;
    $d= 4;
    $e= 5;
    $f= 6;
    $g= 7;

    //Canvas grafico radar
    con questo


    Codice PHP:
    <script type="text/javascript" charset="utf-8" src='js/jquery-1.10.2.min.js'></script>
    <script type="text/javascript" charset="utf-8" src='js/Chart.js'></script>

    <?php
    $a
    = 1;
    $b= 2;
    $c= 3;
    $d= 4;
    $e= 5;
    $f= 6;
    $g= 7;
    ?>

    <script type="text/javascript" charset="utf-8" src='js/script_grafico.php'></script>

    <?php
    //Canvas grafico radar
    echo "<canvas id='myChart2' width='280' height='280'></canvas>";
    ?>
    e dentro al file script_grafico.php (attento che per usare le variabili php il file deve avere estenzione .php altrimenti non viene interpretato) metti:

    Codice PHP:
    data : [<?php echo "$a,$b,...,$g"; ?>]
    Ultima modifica di vplaza : 25-04-2015 alle ore 12.32.35

  5. #5
    Guest

    Predefinito

    Grazie per l'aiuto, alla fine sono riuscito a risolvere il problema.

    Al posto di includere il file php con lo script ho inserito lo script direttamente nel file php. Purtroppo il metodo di utilizzare l'echo nell'array data[] non ha funzionato nel mio caso, quindi ho assegnato le singole variabili php a variabili js, riuscendo così a far funzionare il tutto.

    La dritta sul cambiamento del formato del file mi ha sicuramente aiutato, grazie

    Questo è il codice definitivo:
    Codice PHP:
    <?php
    $a
    = 1;
    $b= 2;
    $c= 3;
    $d= 4;
    $e= 5;
    $f= 6;
    $g= 7;

    ?>
    <script>
    $(document).ready(function(){

    var a= <?= $a;?>;
    var b= <?= $b;?>;
    var c= <?= $c;?>;
    var d= <?= $d;?>;
    var e= <?= $e;?>;
    var f= <?= $f;?>;
    var g= <?= $g;?>;

    var ctx2 = document.getElementById("myChart2").getContext("2d");

    var data2 = {
    labels : ["A","B","C","D","E","F","G"],
    datasets : [
    {
    label: "Label 1",
    fillColor : "rgba(50,50,50,0.5)",
    strokeColor : "rgba(220,220,220,1)",
    pointColor : "red",
    pointStrokeColor : "#fff",
    data : [a,b,c,d,e,f,g]
    },
    ]
    }

    var myNewChart2 = new Chart(ctx2).Radar(data2);
    var ctx2 = $("#myChart2").get(0).getContext("2d");
    var myNewChart2 = new Chart(ctx2);
    new Chart(ctx2).Radar(data2,options);

    });
    </script>

    <?php
    //Canvas
    echo "<canvas id='myChart2' width='324' height='300'></canvas>";
    ?>

  6. #6
    Guest

    Predefinito

    Complimenti che sei riuscito da solo, però dando un'occhiata alla veloce vorrei fare una precisazione, il php è un linguaggio server side tu puoi tranquillamente inserire dentro un file php uno script e lanciarlo con il print...facciamo un esempio:
    Codice PHP:

    <?php

    $stringa
    ="ciao";
    print
    "<script type='text/javascript'>alert('$stringa')</script>";

    ?>
    Come vedi non hai bisogno di inserire inizio e fine codice php per passargli la "$stringa", basta inserire i tag del php ad inizio e fine file, puoi inserire il javascript dentro il php e quando lo vuoi invocare fai un echo...è molto comodo se devi fare delle azioni lato client con la gestione dei dati dal php..Puoi quindi includere tranquillamente il tuo script dentro tutto il file php senza chiudere il tag php prima dello script, gli dai un nome, tipo $mioJavaScript e a fine file farai echo $mioJavaScript, le variabili le passi con la $ dentro lo script senza inizio e chiusura tag php perchè sei nel server side, sei dentro il server side non hai bisogno di uscire e rientrare...Ciao spero possa fare un pò di chiarezza.
    Ultima modifica di fractalcosmo : 06-05-2015 alle ore 00.58.13

  7. #7
    Guest

    Predefinito

    Un altro esempio di utilità di gestione delle variabili dal php, devo andare a completare dei campi di una input, ho bisogno di un javascript che mi valorizzi la input con delle variabili che però ho nel php, ci sono vari metodi uno di questi può essere il seguente...Ovviamente l'echo va fatto dopo il codice HTML perchè altrimenti lanceresti il javascript prima e non trova l'id...due esempi sotto, inseriamo ciao dentro una input al Dom Ready, al caricamento della pagina...

    Codice PHP:
    <?php

    $stringa
    ="ciao";

    $mioJavascript = "<script type='text/javascript'>document.getElementById('mioId').value='$stringa'</script>";

    ?>
    Codice HTML:
    <html><input type='text' value='' id='mioId'></html>
    Codice PHP:
    <?php

    echo $mioJavascript;

    ?>
    Oppure:


    Codice PHP:
    <?php

    $stringa
    ="ciao";

    $mioJavascript = "<script type='text/javascript'>document.getElementById('mioId').value='$stringa'</script>";

    print
    "<html><input type='text' value='' id='mioId'></html>";

    echo
    $mioJavascript;

    ?>
    Ultima modifica di fractalcosmo : 06-05-2015 alle ore 01.21.11

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •