将php变量传递到单独的javascript文件
passing php variable to separate javascript file
我一直在阅读如何将变量从php网页传递到单独的javascript文件,但运气不佳。
请不要把这个标记为重复,因为我知道有很多东西告诉我们如何做到这一点。我认出了这些帖子,更多的是检查我的语法,或者看看我的特定情况是否有什么独特之处导致这些方法不起作用。
所以我有一个PHP网页,在那里我发布了一些变量到:
DOCTYPE HTML
...
<?php
$id = $_POST["id"];
$name = $_POST["name"];
?>
...
HTML code with some usage of PHP variables
javascriptFunction()
end page
然后在一个单独的javascript文件中,我有:
var markerlocation = '<?php echo $point; ?>';
function javascriptFunction () {
alert("markerlocation");
});
这看起来很直接,但无论出于什么原因,我都无法获得它。我也尝试过json编码。
完成后我可以删除此。衷心感谢您的帮助。
我的方式:
- 声明一个数组来存储用于将变量传递给JavaScript的变量
- 在php中将数组编码为JSON
- 从php解码JSON字符串并将其存储为JavaScript变量
PHP
<?php
//You may declare array for javascript
$jsVal = array(
'user_name' => 'Peter',
'email' => 'peter@gmail.com',
'marker_location' => '102,300'
);
?>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>var phpConfig = jQuery.parseJSON(<?=json_encode($jsVal)?>);</script>
分离的javascript文件
alert(phpConfig.marker_location);
你可以试试
您可以将脚本标记源指向.php文件,而不是.js文件,我认为这就是您想要的。也适用于图像标记;)
编辑:有些浏览器可能需要text/javascript mime头才能正常工作,但PHP并不难,我想你已经知道如何做到这一点了。
附带说明:只有当您计划允许客户端缓存javascript输出时,才可能使用此选项。如果您不希望客户端缓存它,则需要设置其他标头。
相关文章:
- Javascript排序的图像弹出窗口..可以't单独弹出
- 从单独的html文件预览Javascript文本
- 有什么“;错误的”;将javascript放在asp.net表单上,而不是放在单独的文件中
- Javascript单独的游戏窗口
- 正在将Visual Studio 2012 JavaScript Intellisense标记移动到单独的文件
- 在AJAX成功响应中执行Javascript代码(在单独的文件中)
- 是否可以将此javascript代码(或其中的一部分)移动到单独的文件中,而不是内联
- 使用简单的JavaScript或jQuery单独识别每个选择选项,并在DIV中显示
- ASP.NET 单独的 JavaScript 目录结构
- JavaScript 无法从单独的文件工作
- 将 JavaScript 代码放在单独的文件中是行不通的
- Javascript+HTML中的日期选择器准备好了吗?(需要:DD、MM、YY的单独字段加上日历选择器)
- window.load上单独的javascript文件中的引用函数
- 根据属性将javascript中的对象数组拆分为单独的数组
- 此JavaScript函数可以单独使用,但不能与其他JavaScript函数一起使用
- 在单独加载时运行良好的组合javascript中可能导致错误的原因
- javaScript代码在一个单独的文件中工作,但不是更大文件的一部分
- 拥有多个 HTML 页面通常使用的单独 javascript 文件是否会加快页面加载速度
- 在选项卡中显示带有单独javascript文件的本地html页面
- 如何创建一个由单独Javascript生成的数据填充的弹出式html