Insert a converted php array in a js object

daniele8808

Nuovo Utente
9 Ago 2017
3
0
1
31
Ho un'array PHP che ho convertito in js usando il metodo json_encode:
Codice:
$mesi = array ( [0] => Nov [1] => Dic )
    var js_mesi = '<?php print(json_encode($mesi)); ?>';
Questo è l'output dell'array convertito:
PHP:
    ["Nov","Dic"]
Il problema che sto avendo è inserendo l'array js_mesi all'interno di un oggetto
PHP:
    data: {
        labels: [js_mesi],
    }
perchè i valori di js_mesi sono riconosciuti come un singolo valore e non come due valori separati.
L'output che vorrei è questo:
PHP:
    data: {
        labels: ["Nov", "Dic"]
    }

invece ho questo

    data: {
        labels: ["Nov,Dic"]
    }
 
Ultima modifica di un moderatore:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.312
334
83
Ciao Daniele
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code.gif
quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box inserisci 2.png.JPG

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 

marino51

Utente Attivo
28 Feb 2013
2.955
171
63
Lombardia
prova così,
PHP:
<?php
$mesi = array ( 0 => 'Novembre', 1 => 'Dicembre' );
var_dump($mesi); echo "<br /><br />";

$json_mesi = json_encode($mesi, JSON_FORCE_OBJECT);
var_dump($json_mesi); echo "<br /><br />";
?>
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type"
 content="text/html; charset=UTF-8">


    <title>json array test</title>

    <script type="text/javascript">
    var js_mesi = <?php echo $json_mesi; ?>;
        alert(js_mesi[1]+"\n\n"+js_mesi[0]+"\n\n"+js_mesi);

        var dataA =
        {
            labels:
            [
                js_mesi[0],
                js_mesi[1],
            ]
        }
        alert(dataA['labels'][0]+"\n\n"+dataA['labels'][1]);

        var dataB =
        {
            labels: js_mesi,
        }
        alert(dataB['labels'][0]+"\n\n"+dataB['labels'][1]);
    </script>

  </head>
  <body>
      <h3>json array test</h3>
  </body>
</html>
 

marino51

Utente Attivo
28 Feb 2013
2.955
171
63
Lombardia
@macus_adi carissimo,
hai scritto esattamente quello che ho scritto io, ma con una sostanziale differenza,
JSON_FORCE_OBJECT è chiaro cosa dice
true è anonimo,
lascia che le cose vengano ben specificate per la massima chiarezza e massima comprensione