0

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

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

现在我想在一个 JS 文件中访问这个数组,那我该怎么做呢?

与 .js 文件一样,它<?php echo json_encode($authcode); ?>不起作用。

已更新

我的 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 数组的地方

请指导我。

4

4 回答 4

3

您需要告诉 php 它也应该处理 .js 文件。有两种方法可以做到这一点:

  1. 从 file.js 重命名为 file.php
  2. 弄乱 apache 配置,使其将 .js 文件视为 php

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

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

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

于 2012-06-25T11:20:03.480 回答
1
<?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>
于 2012-06-25T11:20:39.267 回答
0

不使用 AJAX 就无法访问 JS 文件中的 PHP 变量。

也就是说,您可以使您的脚本成为一个返回application/javascript响应的 PHP 文件。

于 2012-06-25T11:18:45.790 回答
0

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

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

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

  2. 在 .js 文件中允许 PHP

    AddHandler application/x-httpd-php5 .js

  3. 把它放在你的布局中,并将你的数据存储在一个全局变量中,让它可以从其他所有 js 脚本中访问。

哪种方法适合您的需要完全取决于您。但我通常会避免第二种方法。

于 2012-06-25T11:20:31.940 回答