[英]call php var inside JS
你能告诉我为什么这不起作用吗?
<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变量? 谢谢
$var1
是string
,因此需要将其用引号引起来。 $var1
是字符串,而不是array
或object
,所以json_encode
不是必需的。 在字符串周围使用引号(请参见标记位置的引号):
onclick="document.getElementById('demo').innerHTML = '<?php echo($var1) ?>'">
// ^ ^
它是一个字符串。 该'
小号需要适当补充串绕。
onclick="document.getElementById('demo').innerHTML = '<?php echo(json_encode($var1)); ?>';"
尽管有很多答案,我还是会给我2美分,我认为OP在考虑什么:
基本思想是使用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";'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.