我正在尝试从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的东西?任何建议将不胜感激。
答案 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;)