2016-06-14 3 views
1

J'ai un tableau multi-dimensionnel nommé graph en PHP que j'ai envoyé au fichier smarty.tpl et je l'obtiens en tpl au nom de smarty variable graph.Conversion d'un tableau smary multidimensionnel en un tableau multidimensionnel Javascript

Array 
(
    [0] => Array 
     (
      [weight] => 950.500 
      [date] => 27 
     ) 

    [1] => Array 
     (
      [weight] => 800.100 
      [date] => 31 
     ) 

    [2] => Array 
     (
      [weight] => 250.250 
      [date] => 03 
     ) 

) 

Maintenant, je voudrais créer un tableau multidimensionnel dans javascript dans ce tpl. Comment puis je faire ça ?

echo json_encode($graph); 


$smarty -> assign("graph",$graph); 
$smarty -> assign("data_weight",$data_weight); 

et à l'intérieur fichier tpl Je suis en train d'obtenir le tableau dans ce format

var d1 = [[1,100], [2,110], [3,99], [4,114]]; 

J'ai essayé cette commande pour convertir objet JSON tableau

var d1 = JSON.parse(JSON.stringify(graph)); 

Mais c'est ne fonctionne pas.

+0

Ce n'est pas un problème de javascript, c'est lié à PHP –

+0

Trouvé la solution ?? –

+0

Copie possible de [convertir tableau smarty en tableau javascript] (http://stackoverflow.com/questions/16847114/convert-smarty-array-to-javascript-array) – Sheepy

Répondre

0

Le plus simple et la meilleure façon est d'envoyer ce tableau de php à javascript format JSON ... à savoir

Vous pouvez coder comme

echo json_encode($YOUR_PHP_ARRAY); 

et lorsque vous recevez à côté javascript .. il traite toujours bien json donc vous pouvez facilement l'utiliser directement car il est côté client ..

Comme vous avez partagé votre json_encode avec moi ... voici le code javascript pour lire votre tableau .. J'ai utilisé document .write pour l'imprimer sur votre page .. a nd Je vous ai sauvé JSON qui javascript recevra de votre php dans var x

 \t var x = [{"weight":"950.500","date":"27"},{"weight":"800.100","date":"31"},{"weight":"25‌​0.250","date":"03"}]; 
 
    \t // console.log(x); 
 
    
 
    \t for(var i = 0;i<x.length;i++){ 
 
    \t \t console.log(x[i]); 
 
    \t \t document.write("Weight : "+x[i].weight); 
 
    \t \t document.write("Date : "+x[i].date); 
 
    \t \t document.write("<br/>"); 
 
    \t } 
 

Voici à quoi il ressemble lorsque vous exécutez l'extrait de code .. enter image description here

Et en utilisant Smarty vous peut coder comme

var graph = {$graph|json_encode}; 

Et obtenez le graphique variable qui est une variable javascript à parcourir comme indiqué dans mon extrait. Et pour visualiser la structure du tableau, vous pouvez

console.log(graph); 

et voir dans votre console de navigateur.

+0

Merci pour votre soutien rapide. Je peux comprendre que nous envoyons array à smarty en utilisant json, mais comment puis-je accéder au résultat dans une variable iln javascript? – Sunil

+0

Oh, bien sûr ... pouvez-vous m'envoyer le json_encode ($ array) de votre php s'il vous plaît .. Je vais y accéder et vous montrer pour javascript .. @Sunil –

+0

Merci, je reçois cela comme réponse [{"weight": "950.500", "date": "27"}, {"weight": "800.100", "date": "31"}, {"weight": "250.250", "date": "03"}] – Sunil