passare array da php a javascript

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
devo passare array di tipo (string) e (float), per esempio, in php genero

PHP:
$SPW_xAxisCat[] = (string)$data[$i][0];

poi in javascript, dichiarato all'interno di html, richiamo l'array con

Codice:
    <script type="text/javascript">
$(function () {
  var SPW_Title    = '<?php echo $SPW_Title; ?>'
  var SPW_SubTitle = '<?php echo $SPW_SubTitle; ?>'
  var SPW_xAxisCat = <?php echo json_encode($SPW_xAxisCat); ?>;

ed il risultato è positivo, lavora senza errori

ora racchiudo lo stesso javascript in un file .js e lo richiamo in html con

Codice:
<script type="text/javascript" src="../js/graph_a_intraday.js"></script>

il risultato è negativo, viene segnalato

SCRIPT1002: Errore di sintassi
File: graph_a_intraday.js, riga: 4, colonna: 22

per la riga

Codice:
var SPW_xAxisCat = <?php echo json_encode($SPW_xAxisCat); ?>;

ho provato a racchiudere tra apici,
Codice:
'<?php echo json_encode($SPW_xAxisCat); ?>'
ma,
il tutto si trasforma in stringa di caratteri e non viene utilizzato correttamente.

come posso far convivere le array ed i file .js ?

grazie per i vostri suggerimenti
Marino
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, non puoi scrivere codice php in un file con estensione javascript: non verrà interpretato.
Puoi usare gli array di javascript oppure tenere il codice nel file con estensione php.
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
Puoi usare gli array di javascript oppure tenere il codice nel file con estensione php

grazie per la risposta, puoi per cortesia farmi un esempio per i due casi ?

sono più interessato ad utilizzare un sistema che mi permetta di "parametrare" il nome del file
in modo da utilizzare un unico html per differenti grafici

grazie ancora
Marino
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
per maggior chiarezza,
ho diversi file con estensione php, che vengono inclusi come detto nel primo post,
che contengono codice html, uguali nella loro struttura, dove cambia solo la parte javascript,

HTML:
<html>
  <head>
    <title>SolarPower Data Analysis</title>
    <meta http-equiv="Content-Type"
 content="text/html; charset=utf-8">

    <script type="text/javascript" src="../Highcharts/jquery.min.js"></script>
    <script type="text/javascript">
$(function () {
  var SPW_Title    = '<?php echo $SPW_Title; ?>'
  var SPW_SubTitle = '<?php echo $SPW_SubTitle; ?>'
  var SPW_xAxisCat = '<?php echo json_encode($SPW_xAxisCat); ?>';

  var SPW_y0type   = '<?php echo $SPW_y1type; ?>'
  var SPW_y0title  = '<?php echo $SPW_y1title; ?>'
  var SPW_y0ttip   = ' <?php echo $SPW_y1ttip; ?>'
  var SPW_y0color  = '#89A54E'
  var SPW_y0min    = ' <?php echo $SPW_y1min; ?>'
  var SPW_y0data   = '<?php echo json_encode($SPW_y1data); ?>';
........
........
                yAxis: 0,
                name: SPW_y0title,
                color: SPW_y0color,
                type: SPW_y0type,
                data: SPW_y0data,
                marker: {
                    enabled: false
                },
                tooltip: {
                    valueSuffix: SPW_y0ttip
                }
            }]
        });
    });
    </script>
  </head>
  <body>
    <script src="../Highcharts/highcharts.js"></script>
    <script src="../Highcharts/exporting.js"></script>

    <div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>

    <br /><br />
    <a href="graph.php">[back to graph selection]</a><br />

---> funzionalità da aggiungere

  </body>
</html>

vorrei, se possibile, creare un template php (html) che conterrà tutte le funzionalità ed in esso,
richiamare in modo parametrico il file .js, specifico, che fornisce "solo" i dati da visualizzare
facendo da interfaccia con highcharts

una soluzione "scarsa" consiste nell'assemblare, al momento, il file da utilizzare
ma spero vi sia un modo megliore per gestire la situazione

allego un grafico, giusto per vedere il risultato
grazie dell'aiuto
Marino
 

Allegati

  • mr_web_graph.zip
    46,2 KB · Visite: 311

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Vediamo se ho capito:
tu recuperi i dati da mostrare tramite delle funzioni php (probabilmente query su un database).
i dati recuperati devi darli in pasto ad un plugin jquery che ti crea il grafico.
Se così io richiamerei i file php con ajax; il php si occuperà di creare il codice javascript necessario che verrà eseguito dalla funzione eval() messa nel success della chiamata
Codice:
 $.ajax({
      type: "POST",
      url: "pagina.php",
      success: function(response){
                 eval(response);
      }
});
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
grazie criric,

non sono riuscito ad usare il tuo suggerimento Ajax, non alla portata delle mie conoscenze,
ma questa mattina si è svegliato il neurino rimasto, (chiamarlo neurone è troppo ... )

così ho provato la soluzione più banale ...

PHP:
require_once "func_".$func_list[$scelta].".php"; <<-- includo la funzione specifica del grafico scelto, che,
call_user_func($func_list[$scelta]); <<-------------- estrae dati dal db e fa qualche calcolo 
$js_script = $js_list[$scelta]; <<------------------- scelgo lo script js
require_once "../forms/graph.php"; <<---------------- utilizzo sempre lo stesso form con js diverso
HTML:
<!DOCTYPE html>
  <head>
    <title>SolarPower Data Analysis</title>
    <meta http-equiv="Content-Type"
 content="text/html; charset=utf-8">

    <script type="text/javascript" src="../Highcharts/jquery.min.js"></script>
    <script type="text/javascript">

<?php require_once '../js/'.$js_script; ?> <<-------- salute al neurino !

    </script>
  </head>
  <body>
    <script src="../Highcharts/highcharts.js"></script>
    <script src="../Highcharts/exporting.js"></script>
    <div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
    <br /><br />
    <a href="graph.php">[back to graph selection]</a><br />
  </body>
</html>
funziona in modo di...vino (bicchiere con cui ho brindato)
grazie ancora, ciao
Marino
 
Discussioni simili
Autore Titolo Forum Risposte Data
N Passare array da php a javascript PHP 5
A Passare un array ad un'altra pagina .php PHP 1
B Passare un array da html a php PHP 1
D [ASP] Passare in array stringa dinamica Classic ASP 2
M Passare dati in un array da statement mysqli PHP 2
D passare dati array da un form GET ad un'altra pagina PHP 2
felino [JS] Passare un array ed effettuare la somma degli elementi Javascript 2
C Passare array con email da un form via post PHP 3
A Passare un Array Java 1
I Passare array a smarty PHP 2
T passare una array ad una funzione PHP 2
S passare un valore da un form a un file .php con metodo post PHP 4
R valore value di un id da passare in chiamata ajax Ajax 3
S Passare query o utm alla pagina successiva Domini 1
P Passare solo alcuni parametri a script per CSV PHP 0
D passare valori da database sql a php PHP 1
P Passare contenuto in value. Ajax 1
P Passare i risultati di un foreach in un modal. Help! PHP 2
F Passare variabile a pulsante in finestra modale PHP 2
P jButton1ActionPerformed passare parametri ad altra classe Java 2
Fendo59 Passare parametri con metodo POST a una pagina in un frame PHP 0
A Problema nel passare la variabile PHP 0
I Passare dei parametri in javascript PHP 0
N PDF fpdi passare variabile PHP 4
F Come passare una variabile al modal di bootstrap PHP 1
G Passare path directory in POST PHP 2
F Passare una variabile php dal DB mysql alla pagina PHP 3
M [PHP] Passare variabile di sessione con metodo GET PHP 10
G [Javascript] Passare un valore via querystring Javascript 1
G [PHP] Passare dati tra record PHP 4
L [PHP] Passare variabile PHP 3
AMONRA75 [PHP] passare una variabile in una finestra MODAL PHP 1
P Come passare var1 a pagina php1 e var1,var2 a pagina php2 PHP 5
M Passare una varibile da PHP a Javascript PHP 2
B [PHP] passare valore ad un form su un'altra pagina PHP 4
K [PHP] Paginazione Wordpress: passare variabile PHP 6
F [Javascript] select list concatenate - passare valore dalla prima alla seconda Javascript 7
T [PHP] passare una variabile in una finestra MODAL di bootstrap PHP 3
M [MS Access] Passare i dati di una query da form a report MS Access 3
V Passare a PHP pagina bootstrap creata in HTML PHP 1
A passare parametri ad un file php prima di utilizzare $.get jQuery 1
A [PHP] Passare variabili tra pagine diverse PHP 2
A [Javascript] Passare variabile tra pagine html diverse Javascript 13
K [PHP] Passare valore select PHP 2
andreacata31 [ASP.Net] Passare da Windows Application a sito Web ASP.NET 1
SimooRu [PHP] Non riesco a far passare i dati con i form PHP 4
Rikk73 Passare come argomento in un metodo un parametro della classe istanziata PHP 0
I Passare record Database access a Java Javascript 0
C Passare dal terzo al secondo livello di un dominio su Aruba Domini 2
A Passare due variabili con Javascript. Javascript 1

Discussioni simili