如何将多维数组从PHP传递给Javascript?

时间:2015-09-21 10:44:46

标签: javascript php arrays json multidimensional-array

我正在尝试从JSON字符串中获取数组值,并使用json_decode PHP进行工作。

<?php
$jsonContent=file_get_contents('http://megarkarsa.com/gpsjson.php');
$jsonDecoded=json_decode($jsonContent,true);
foreach($jsonEncoded['BMS'] as $p){
echo '
ID: '.$p['id'].'
Tipe: '.$p['type'].'
';
echo "<br>";
?>

PHP代码可以工作,并从JSON字符串中提供数组的结果。 这是我的Javascript代码

<script>
var bmsdata = <?php echo $jsonDecoded ?>;
alert(bmsdata["1"].id); // For check, i want to see the id of row 1
</script>

但没有出现任何东西。 我到目前为止做得对吗?或者我错过了将值从PHP传递给Javascript的东西?任何建议将不胜感激。

3 个答案:

答案 0 :(得分:3)

$jsonDecoded是已解码的json。

请更改

var bmsdata = <?php echo $jsonDecoded ?>;

var bmsdata = <?php echo json_encode($jsonDecoded); ?>;

或使用已有的变量$jsonContent

var bmsdata = <?php echo $jsonContent; ?>;

答案 1 :(得分:1)

看起来您正在将解码的PHP表示数据注入到您的javascript中。您可能(如果您想继续这样做)想要回显编码版本(jsonContent)。

最终,您可能想重新考虑这种方法。通过ajax获取数据通常是一种更简单的方法,因为你不必担心通过php编写裸javascript,这有各种各样的逃避问题才能正确。

答案 2 :(得分:1)

当我在http://megarkarsa.com/gpsjson.php;)

查找JSON时,这个应该可以工作
<script>
var bmsdata = <?php echo json_encode($jsonDecoded); ?>;
alert(bmsdata.BMS["1"].id); // For check, i want to see the id of row 1
</script>

你刚忘了BMS&#39; key;)