繁体   English   中英

在JS内调用php var

[英]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变量? 谢谢

  1. 由于$var1string ,因此需要将其用引号引起来。
  2. 因为$var1是字符串,而不是arrayobject ,所以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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM