繁体   English   中英

在.js文件中使用PHP的json_encode()函数

[英]Using PHP's json_encode() function in .js file

我在php文件中有一个数组说

<?php $authcode = array("auth"=>"jshkjashdkj");?>

现在,我想在JS文件中访问此数组,那么该怎么办呢?

如.js文件中的<?php echo json_encode($authcode); ?> <?php echo json_encode($authcode); ?>不会工作。

UDPATED

我的custom.js文件包含以下代码,我必须在url中使用authcode:

$('#removeimage').click(function(){


              $.ajax({
                        url:'deletefile.php?filename='+$('#filename').val()+'&make='+$('#make').val()+'&model='+$('#model').val(),
                        cache: false,
                        async: false,
            dataType: "json",
              success: function(data) {
              window.location="/upload/?authcode=97A434B1-E250-490D-8CF1-4B664AB42EED&make="+data.make+"&model="+data.model+"&imagename="+data.filename;


                        },
            error: function(data) {
                alert("Service is down");
            }
                 });
});

请注意authcode的用法,那就是我需要使用authcode数组的地方

请指导我。

您需要告诉php它也应该处理.js文件。 有两种方法可以执行此操作:

  1. 从file.js重命名为file.php
  2. 与Apache配置混乱,使其将.js文件视为PHP

第一个比较容易。 您必须做的另一个更改是在html中替换对js文件的调用:

<script type="text/javascript" src="somefolder/file.php"></script>

编辑:使file.php脚本输出header("Content-Type: text/javascript"); 在文件的顶部

<?php $authcode = array("auth"=>"jshkjashdkj");?>
<script>
  // declare a global var, then you could access it in file.js
  var authcode = <?php echo json_encode($authcode); ?>;
</script>
<script src="file.js"></script>

如果不使用AJAX,则无法访问JS文件中的PHP变量。

就是说,您可以将脚本制作为PHP文件,以返回application/javascript响应。

根据您的用例,您有几种可能性。

  1. 您可能不会从PHP生成.js文件

    file_put_contents('somefile.js', $content);

  2. 允许.js文件中的PHP

    AddHandler application/x-httpd-php5 .js

  3. 将其放在布局中,并将数据存储在全局变量中,以使其可从其他所有js脚本访问。

哪种方法最适合您,取决于您。 但是我通常会避免第二种方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM