在JS中调用php-var

call php var inside JS

本文关键字:php-var 调用 JS      更新时间:2023-09-26

你能告诉我为什么这不起作用吗?

<html>
<body>
<?php
$var1 = "hello";
echo $var1;
?>
<button type="button"
onclick="document.getElementById('demo').innerHTML = <?php echo(json_encode($var1)); ?>;">
HI</button>
<p id="demo"></p>
</body>
</html>

我应该怎么做才能从JS中读取php变量?感谢

它是一个字符串。需要在字符串周围正确添加'

onclick="document.getElementById('demo').innerHTML = '<?php echo(json_encode($var1)); ?>';"
  1. 由于$var1string,所以需要用引号将其括起来
  2. AS $var1是字符串,而不是arrayobject,不需要json_encode

在字符串周围使用引号(请参阅引号的标记位置):

onclick="document.getElementById('demo').innerHTML = '<?php echo($var1) ?>'">
//                                         ^                              ^

尽管有很多答案,但我会为OP的想法付出2美分:

其基本思想是使用json_encode生成hello字符串来打印"hello"而不是hello。问题实际上是,它将导致:

onclick="document.getElementById('demo').innerHTML = "hello";"

这是无效的,因为双引号中有双引号。

因此,如果他愿意,他可以继续使用json_encode,只要他将双引号改为单引号:

onclick='document.getElementById("demo").innerHTML = <?php echo json_encode($var1); ?>;'
        ^ <-- single quote       ^----^ <-- double quote here     single there too --> ^

这应该会产生一个有效的输出,即:

onclick='document.getElementById('demo').innerHTML = "hello";'