2012-06-25 55 views
0

我在PHP文件一個數組說使用PHP的json_encode()中的.js文件的功能

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

現在我想在JS文件來訪問這個數組,然後我該怎麼辦呢?

正如.js文件<?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使用,那地方我需要使用我的授權碼陣列

請指導我。

+0

您的示例適用於我 –

+0

[通過PHP解析JavaScript文件](http:// stackoverflow。COM /問題/ 3943198 /解析-A-的JavaScript文件 - 通PHP)。此外,您可以重新配置您的PHP解釋器,將所需的'* .js'文件解析爲PHP代碼。 –

回答

0

如果不使用AJAX,則無法訪問JS文件中的PHP變量。

這就是說,你可以讓腳本成爲一個PHP文件,返回一個application/javascript響應。

+0

正是這就是我想要做的事情我在ajax成功響應中創建一個url,成功時頁面需要直接到一個頁面,該頁面的查詢字符串將包含authcode作爲參數,引導我可以做到這一點,請參閱更新後的問題 –

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腳本輸出header("Content-Type: text/javascript");在文件的頂部

+0

我將在file.php的''您將擁有'' –

0

你必須取決於幾種可能性在你的用例上。

  1. 您可以wan't生成PHP

    的.js文件

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

  2. 允許PHP在js文件

    AddHandler application/x-httpd-php5 .js

  3. 把它放在你的佈局並將您的數據存儲在全局變量中,以便從其他任何js腳本訪問它們。

哪些方法適合您的需要是真的取決於您。但我通常會避免第二種方法。

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>