从function.php文件到scripts.js文件中使用var

时间:2018-11-05 19:40:22

标签: javascript php

我有一个function.php代码简单的一个:

$var = "7000";

我还有另一个文件script.js:

var Price = <?php echo $var ?>;

现在,当此代码位于同一文件中时,它可以工作。

但是当我分离文件时并没有。

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

创建一个名为price.php的脚本,其内容如下:

<?php
header("Content-type: text/javascript"); // As suggested by Mark Eriksson
$var =  "7000";
?>
const PRICE = <?php echo $var; ?>;

现在您可以在任何HTML页面上引用此JavaScript块:

<script src="price.php"></script>

您将有一个名为PRICE的全局JavaScript变量(常量)。

您需要可变价格吗?没问题,您可以将值作为参数传递,例如:

<script src="price.php?price=8500"></script>

然后在您的price.php中,将其更改为:

<?php
    $var =  $_GET["price"];
?>
 const PRICE = <?php echo $var; ?>;

您的HTML页面仍然获得名为PRICE的常量。

答案 1 :(得分:0)

正如GrumpyCrouton在对您的评论中所指出的那样,一个文件中的变量可以通过包含它们而在另一个文件中读取

<?php 
include('file1.php'); // include the file where the variable is defined
<script>
var Price = <?= json_encode($var) ?>; // in javascript code export the variable to js usign json
</script>

使用json_encode并将变量直接转储到js中始终是安全的,这样就不必再封装它了,我将在最后添加一个分号,但这在当今时代更是个人喜好。 / p>

答案 2 :(得分:-1)

好吧,如果要访问一些PHP变量,则需要使用AJAX。 非常简单。

在function.php文件中执行此操作

<?php
$var = "7000";
// Put your price into array to form it into JSON format further
$data = ["price" => $var];
return json_encode($data);

然后在您的JS文件中

let xhr = new XmlHttpRequest();
xhr.open('get', 'function.php', true);
xhr.onload = function() {
    if (this.status == 200) {
        var data = JSON.parse(this.response);
        // Your final result
        var Price = data.price;
    }
}
xhr.send();