从外部javascript文件访问PHP var

IT技术 php javascript variables external
2021-01-14 01:22:04

我可以像这样使用 Javascript 访问 PHP var:

<?php
    $fruit = "apple";
    $color = "red";
?>

<script type="text/javascript">
    alert("fruit: " + "<?php echo $fruit; ?>"); // or shortcut "<?= $fruit ?>"
</script>

但是如果我想使用外部 JS 文件怎么办:

<script type="text/javascript" src="externaljs.js"></script>

外部js.js:

alert("color: " + "<?php echo $color; ?>");
6个回答

您并没有真正访问它,而是在提供页面时将其插入到 javascript 代码中。

但是,如果您的其他 javascript 不是来自外部来源,您可以执行以下操作:

<?php
    $color = "Red";
?>
<script type="text/javascript">var color = "<?= $color ?>";</script>
<script type="text/javascript" src="file.js"></script>

然后在 file.js 中使用如下颜色:

alert("color: " + color);
应该是 var color = "<?= $color ?>";
2021-03-16 01:22:04
如果不是因为它在较低的脚本标记之间创建全局变量,我会对这个解决方案感到满意。
2021-03-22 01:22:04
抱歉,感谢 Mark L,我已经在帖子中更正了。
2021-03-27 01:22:04
这也正是我刚刚想出来的,。以及我所追求的。+1 给唐
2021-03-28 01:22:04
一个伟大的概念,但请不要使用全局变量!另外@Adam Joseph Looze - 在声明 javascript 变量时使用“var”关键字始终是最佳实践。如果没有“var”,变量将自动成为全局变量(附加到窗口对象)。
2021-04-13 01:22:04

您还可以像这样从 Javascript 中的 php 脚本访问数据(我将在这里使用 jQuery)

像这样在你的 php 文件中创建输入隐藏字段

<input type="hidden" id="myPhpValue" value="<?php echo $myPhpValue ?>" />

在您的 javascript 文件中:

var myPhpValue = $("#myPhpValue").val();
//From here you can the whaterver you like with you js Value
if(myPhpValue != ''){
//Do something here
}

这也将完成这项工作:)

我所看到的是让 .js 文件通过 php 解释器运行。我不能推荐。

我推荐的是通过 AJAX 获取值,并让 PHP 文件将值返回给 JS 文件。这是一种更清洁的方法。

@Ólafur Waage 你能添加代码解释怎么做吗?
2021-03-19 01:22:04
高超!带有实际代码的示例将提供 100000 个单词。请发布代码!
2021-04-04 01:22:04
通过 ajax 获取值是昂贵的。如果您在一开始只需要一次来自服务器的数据,则没有必要这样做。
2021-04-09 01:22:04

首先,您必须了解没有程序实际上可以访问其他程序的变量。

当你意识到这一点时,剩下的就很简单了。
您可以在主文件中设置一个 js 变量,然后包含您的外部 js,或者使这个外部 js 动态化,也可以由 PHP 生成

谢谢澄清。我使用了你的第一个解决方案。<script type="text/javascript">_fruit = "<?= $fruit; ?>";</script> 比 <script type="text/javascript" src="externaljs.js"></script> 和在 externaljs.js 中,我使用 alert(_fruit) 访问;
2021-03-21 01:22:04

您可能想要的称为异步 JavaScript 和 XML (AJAX):http : //www.w3schools.com/ajax/default.aspa

基本上,想象一下能够将消息从客户端 JavaScript 发送到服务器上的 PHP 脚本。在您提供的示例 (externaljs.js) 中,您可以让脚本通过 HTTP 询问服务器 $color 是什么。您还可以将脚本标记指向生成所需 JavaScript 的 PHP 脚本。这取决于您需要做什么。

它有助于对污点检查、数据验证和安全性有一些了解;)