将变量添加到json

时间:2020-05-31 12:04:58

标签: javascript php json

所以这里有很多问题,我尝试了很多,但没有成功。

我正在尝试将php变量添加到javascript变量中,然后将其放入json中。

<?php $symbol_json =  $row['symbol_json']; echo $symbol_json; ?> <!--This is OK!-->
</div>
</center>
<center>
<!-- Widget BEGIN -->
<div class="widget-container">
  <div class="widget-container__widget"></div>
  <div class="widget-copyright"><a href="https://aaaaaaa.com/symbols/<?php echo $row['symbol_html']; ?>/" rel="noopener" target="_blank"><span class="blue-text"><?php echo $row['symbol']?> Symbol Info</span></a></div>

  <script>
    var myVar = '<?php echo $symbol_json ?>'; alert(myVar); //This works ok!

    var myObject = JSON.parse('<?php echo json_encode($symbol_json) ?>'); alert(myObject); //Alert works ok!
  </script>

  <script type="text/javascript" src="https://aaaaaaa.com/external-embedding/symbol-info.js" async>
  {
  //"symbol": "SDT", //This how it is at present and it works. I need to change it to a variable like below.
  "symbol": myObject, //Whether I use myObject or myVar (which both contain SDT) the widget loads a different symbol. 
  "width": 1000,
  "locale": "uk",
  "colorTheme": "light",
  "isTransparent": false
}
  </script>
</div>
<!-- Widget END -->

2 个答案:

答案 0 :(得分:0)

为什么不将变量放入同一脚本标签?作为一般建议,请不要将PHP与Javascript或HTML混淆。这是使您的代码闻起来最好的方法。您必须解析JSON才能将其用作变量,所以

 var myObject = '<?php echo json_encode($symbol_json) ?>'; 

成为

 var myObject = JSON.parse('<?php echo json_encode($symbol_json) ?>'); 

答案 1 :(得分:0)

我意识到我可以简单地添加:"symbol": "<?php echo $symbol_json ?>",,尽管将PHP放入JS变量中的工作在不同的实例中,但这似乎在这里起作用。控制台错误:SyntaxError:JSON中的意外令牌m-基本上表示m(错误是myObject的第一个字母)。因此,myObject未被视为变量。

相关问题