Mám multi-dimenzionální pole s názvom graf v PHP, ktoré som poslal do súboru smarty.tpl a ja som dostať to v tpl v názve smarty variabilný graf.
Array
(
[0] => Array
(
[weight] => 950.500
[date] => 27
)
[1] => Array
(
[weight] => 800.100
[date] => 31
)
[2] => Array
(
[weight] => 250.250
[date] => 03
)
)
Teraz by som chcel vytvoriť viacrozmerné pole v javascripte v tom tpl. Ako to môžem spraviť ?
echo json_encode($graph);
$smarty -> assign("graph",$graph);
$smarty -> assign("data_weight",$data_weight);
a vnútri tpl súboru Snažím sa získať pole v tomto formáte
var d1 = [[1,100], [2,110], [3,99], [4,114]];
Snažil som sa tento príkaz previesť json objekt do poľa
var d1 = JSON.parse(JSON.stringify(graph));
Ale aj to nefunguje.
odpovede:
0 pre odpoveď č. 1Najjednoduchšie a najlepší spôsob je poslať toto pole z php do javascript vo formáte json ... tj,
Môžete to kódovať ako
echo json_encode($YOUR_PHP_ARRAY);
a keď dostanete na javascriptu strane .. vždy sa zaoberá json dobre, takže môžete ľahko použiť priamo, ako je to na strane klienta ..
Ako ste so mnou zdieľali svoj json_encode ... tu je kód javascript pre čítanie vášho poľa .. Použil som document.write pre tlač na vašu stránku .. a uložil som si json, ktorý javascript dostane od vášho php var x
var x = [{"weight":"950.500","date":"27"},{"weight":"800.100","date":"31"},{"weight":"250.250","date":"03"}];
// console.log(x);
for(var i = 0;i<x.length;i++){
console.log(x[i]);
document.write("Weight : "+x[i].weight);
document.write("Date : "+x[i].date);
document.write("<br/>");
}
Tu je návod, ako sa zobrazí pri spustení útržku kódu.
A pomocou Smarty môžete kódovať ako
var graph = {$graph|json_encode};
A dostať premennú grafu, ktorá je premenná javascript, ktorá sa má prechádzať podľa môjho úryvku. A pre zobrazenie štruktúry poľa môžete
console.log(graph);
a uvidíte ju v konzole prehliadača.