【问题标题】:Passing PHP variable to Javascript not working将PHP变量传递给Javascript不起作用
【发布时间】:2015-08-19 07:15:55
【问题描述】:

我正在尝试将 php 变量传递给 javascript,但它似乎不起作用。我知道它只适用于 javascript,只是当我试图用 PHP 传递它时它不起作用。我做错了什么?

<?php

$sayIt = "Hello";

echo "
<script type = 'text/javascript'>

var msg = new SpeechSynthesisUtterance($sayIt);
window.speechSynthesis.speak(msg);

</script>
";

?>

【问题讨论】:

  • 试试var msg = new SpeechSynthesisUtterance('$sayIt');(单引号)
  • 这个问题可以通过在浏览器中使用debugging tools 调试代码来回答。注意错误Rubber Duck Debug您的代码。如果您不确定代码的作用,请使用console.logdebugger。只有那么,在 StackOverflow 上提问并展示你的研究
  • @Rasclatt 它似乎在 ajax 调用中不起作用。
  • 我讨厌这句话it doesn't work.. 下一次,解释一下自己:什么不工作?你有什么错误吗?你打开浏览器的控制台了吗?你能发布 html PHP-post-processed 吗?无论如何,看看@FrankLi 的答案..

标签: javascript php speech-recognition text-to-speech


【解决方案1】:

它不起作用,因为 PHP 会这样解释代码:

<script type = 'text/javascript'>

var msg = new SpeechSynthesisUtterance(Hello);
window.speechSynthesis.speak(msg);

</script>

那么 JavaScript 会把 Hello 当作一个变量,它可能没有在 JavaScript 中定义,你可以这样写:

echo "<script type = 'text/javascript'>

var msg = new SpeechSynthesisUtterance(\"$sayIt\");

window.speechSynthesis.speak(msg);

";

然后会被解释成这样:

<script type = 'text/javascript'>

var msg = new SpeechSynthesisUtterance("Hello");
window.speechSynthesis.speak(msg);

</script>

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多