【发布时间】:2013-03-16 12:35:12
【问题描述】:
我有一个名为english.php 的文件,其中包含大量变量值。 $LANG 数组的所有部分。
例子:
$LANG['value_1']="abc";
$LANG['value_2']="xyz";
然后我有一百万个使用require_once('english.php');的不同.php文件
这很好,但我也有很多我正在使用的 javascript 和 jquery 插件。它们都有外部 .js 文件。如何在 javascript 中获取 $LANG 的值以使其在 .js 文件中可用?
我想我需要在 .js 的顶部添加代码,以便在运行其余的 javascript 代码之前以某种方式读取 .php 数据。我只是完全不知道该怎么做。
我已经看到了一些可能的想法,但我真的不想对所有内容进行重大重写。寻找一个简单的解决方案。谁能帮助这个无知的新手?
======= 根据收到的 cmets 添加更多信息 =======
我现在有一个包含这段代码的 lang.php...
<?php
session_cache_limiter('nocache');
session_start();
require_once ($_SESSION['language'].'.php');
$js_out = json_encode($LANG);
?>
<script>
var LANG = <?php echo $js_out; ?>;
alert(LANG.value_1);
</script>
当我访问 lang.php 时,它会成功访问english.php 并提醒'abc'
我的问题是当添加到不同的文件时这不起作用...
<script type='text/javascript' src='lang.php'></script>
<script>
alert(LANG.value_1);
</script>
======= 编辑添加解决方案 =======
感谢下面的人的cmets,我摆脱了lang.php文件中的<script>并且它起作用了。
我现在有一个包含这段代码的 lang.php...
<?php
session_cache_limiter('nocache');
session_start();
require_once ($_SESSION['language'].'.php');
$js_out = json_encode($LANG);
?>
var LANG = <?php echo $js_out; ?>;
【问题讨论】:
-
使用
json_encode并将数据放置在您的 JS 可以访问的位置。如果不知道您的项目是如何组织的,就很难说。为什么你的 JS 需要翻译表? -
您不会从 JavaScript 中获取 PHP 变量,反之亦然。 PHP 将其变量告诉 JavaScript。因此,无论您在哪里包含脚本(可能是
<script>标签所在的位置),您都需要将这些页面设为 PHP 和 echo 或您需要对脚本执行的任何操作。 -
如果
english.php中有这么多数据(我假设你正在做动态区域页面或类似的),我建议将此作为对 php 的 ajax 调用来请求特定的键列表将整个事情转储到 JavaScript 中。 -
@Bergi 你不能在 .js 文件中运行 php 代码
标签: php javascript