尽管有很多关于这个主题的帖子,但是我没有运气来嵌入php以回应JS变量。甚至被剥夺了:
//PHP from app.php
$data = json_encode(5);
//and JS in results.html
var data = <?php echo $data; ?>;
console.log只生成&#34;语法错误:期望表达式,得到&#39;&lt;&#39;&#34;。随着报价
似乎PHP没有解析。正如Ed Cottrell在下面指出的那样,这里仍然不受欢迎且没有答案。我运行了pemcconnell创建的test.php,这对我有用。他说这表明你的JS&#34;另一个问题。但是我的JS工作得很好。
所以......我把自己扔给了狼群。我做什么蠢事?如果有人可以帮助我,我会为他们的荣誉制作一个祭坛,装满花环和熏香。
答案 0 :(得分:2)
var data = "<?php echo $data; ?>";
您需要添加双引号以指示$ data是一个json字符串。
答案 1 :(得分:2)
正如Than Ngo Hoai中answer above所建议的那样,代码必须在php文件中,而不是html。否则它就不会起作用。你应该接受他的答案而不是你的答案。
答案 2 :(得分:0)
您需要研究服务器端语言(PHP)和客户端语言(Javascript)之间的区别。
他们不携手沟通,但有一个解决方案。 将Javascript变量保存为浏览器cookie并在PHP中访问它。然后,您可以回显cookie值或将其分配给PHP变量。
PHP与Javascript信息 Add extractor to existing ObservableList
Javascript Cookie https://softwareengineering.stackexchange.com/questions/171203/what-are-the-differences-between-server-side-and-client-side-programming
PHP Cookie http://www.w3schools.com/js/js_cookies.asp
希望这会有所帮助:)
答案 3 :(得分:0)
我仍然无法对php echo做任何变化,但我切换到Twig的{{}}并且它可以工作。我不得不在我的整个“JSON.parse()”声明(我绝望)中引用引号来弄清楚Twig WAS解析,但是通过自动转义双引号搞乱了JSON。一旦我用{{myData.json_encode()| raw}}修复了它,那就完美了。
至于原始问题,Idunno。我的htaccess设置为将HTML文档识别为php。我也尝试将results.html更改为.php,还有其他一百万个我在这里和那里读过的东西。它“应该”有效,但事实并非如此。
谢谢大家的反馈意见。这是一个很好的建议,帮助我解决问题。