在Javascript中使用PHP变量

在Javascript中使用PHP变量,javascript,php,variables,Javascript,Php,Variables,我试图在php中创建一个随机数服务器端,然后使用javascript将div的文本更改为这个随机数。 问题是我不确定如何在javascript中使用包含随机数(用PHP创建)的变量。这是我目前的代码: PHP: Javascript: <script> function Roul () { var a = 0 var b = 37 var A = (Math.floor(Math.random() * (b - a)) + a); //Random

我试图在php中创建一个随机数服务器端,然后使用javascript将div的文本更改为这个随机数。 问题是我不确定如何在javascript中使用包含随机数(用PHP创建)的变量。这是我目前的代码:

PHP:


Javascript:

<script>
  function Roul () {
    var a = 0
    var b = 37
    var A = (Math.floor(Math.random() * (b - a)) + a);  //Random Number
    document.getElementById('Rand').innerHTML = A;
  }

  Roul();
</script>

函数Roul(){
变量a=0
var b=37
var A=(Math.floor(Math.random()*(b-A))+A);//随机数
document.getElementById('Rand').innerHTML=A;
}
鲁尔();
HTML:

我想将javascript变量
A
替换为PHP变量
$A

我还尝试了
var A=但是我一直收到一个错误


“意外标记PHP解释
.PHP
文件。如果将PHP代码放入
.js
文件中,PHP将不会对其进行解释。有两种常见的解决方案。第一种是在加载页面后使用AJAX获取值。更简单的方法是将值插入
.PHP
文件中。例如:

<!-- inside .php file -->
<head>
  ...
  <script>
    window.A = <?php echo json_encode($A); ?>;
  </script>
  ...
</head>
然后使用JavaScript将其拉出:

const A = JSON.parse(document.getElementById('A').textContent);

还有另一种方法,非常不理想,就是创建一个
.js.php
文件,确保
ContentType
头是正确的,并且缓存被禁用(但不要这样做)。

将php代码包装在双(“)/single(”)引号下<代码>var A=“”但是您的变量将以字符串的形式出现,您可以相应地转换为整数。
document.getElementById('Rand')。innerHTML=
听起来像是您在一个文件中尝试了这个方法,而这个文件一开始并没有通过PHP解析器发送?然后它仍然会逐字读取
var A=,但是如果你有一个JS的工作版本,为什么要使用PHP呢?小心IE11的bug,其中
var A=”将冻结浏览器。一定要使用
isset($a)&&strlen($a)>0
来确保传递的是一个空字符串,而不是一个空字符串;谢谢它可以工作,但这是一个非常糟糕的主意,因为必须禁用缓存才能正确执行,这意味着每次都需要对JS文件进行预处理和传输。这是最简单的解决方案,我写它是为了完整性;在某些情况下,这可能是一个好主意,但我还没有。
<!-- inside .php file -->
<head>
  ...
  <script>
    window.A = <?php echo json_encode($A); ?>;
  </script>
  ...
</head>
<script id="A" type="application/json"><?php echo json_encode($A); ?></script>
const A = JSON.parse(document.getElementById('A').textContent);