所以这里有很多问题,我尝试了很多,但没有成功。
我正在尝试将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 -->
答案 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未被视为变量。