2016-02-13 40 views
-1

我是JavaScript新手,試圖將參數從PHP發送到js文件。我想從php文件發送參數到js文件,但我不知道爲什麼這不會發生。如何將參數從php文件傳遞到java腳本文件

代碼:

JavaScript文件名:data6_1.js

var menuItems = [ 
    ["Collected Material","scm.php?firstname=.$id2", "", "", "", "", "0", "0", "", "", "", ], 
]; 

PHP文件:studentbook.php

<?php      
    if(!isset($_SESSION['firstname'])) { 
     $id2 =$_REQUEST['firstname']; 
     echo "<b>".$id2."</b>"." Logged in"; 
    } 
?> 

<div id="MNUOBJ7DFA52C14221AD2" style="position:absolute; top:549px; left:22px; width:174px; height:34px; z-index:3016;"> 
    <script type="text/javascript" src="data6_1.js"></script> 
    <script type="text/javascript"> 
     menuItems.([$id2]); 
    </script> 
    <a href='scm.php'></a> 
</div> 

任何想法,請幫助。

+0

的JavaScript文件中的PHP不會因爲PHP執行,它將被視爲作爲一個字符串。另外,你似乎直接在javascript('menuitems。([$ id2]);')〜中使用一個php變量,這也不會像你期望的那樣工作〜它應該被包含在php標籤中 – RamRaider

+0

[How to傳遞變量和數據從PHP到JavaScript?](http://stackoverflow.com/questions/23740548/how-to-pass-variables-and-data-from-php-to-javascript) –

回答

1

當您的瀏覽器請求文件data6_1.js時,在處理該請求時絕對不會涉及php。這是一個JavaScript文件的簡單請求,就是這樣。 $id2應該如何神奇地變成一些值可能裏面有一些其他腳本執行完全沒有連接?你可能有那個JavaScript創建動態的方式通過PHP,但這並不能解決您的問題,因爲這將是兩個完全獨立的腳本執行,不會像這樣共享任何變量。

相反,您可以在標記中將該值作爲被動值傳遞:<input type="hidden" value="<?php echo $id2; ?>">。然後,您可以簡單地選擇JavaScript中的值並使用它。


在你需要使用PHP來輸出$ ID2的價值你的問題的下部分代碼,否則它會在你的PHP腳本的HTML部分文字:

<?php  
    if(!isset($_SESSION['firstname'])) { 
     $id2 =$_REQUEST['firstname']; 
     echo "<b>".$id2."</b>"." Logged in"; 
    } 
?> 

<div id="MNUOBJ7DFA52C14221AD2" 
    style=" position:absolute; top:549px; left:22px; width:174px; height:34px; z-index:3016;"> 
    <script type="text/javascript" src="data6_1.js"></script> 
    <script type="text/javascript"> 
     menuItems.([<?php echo $id2; ?>]); 
    </script> 
    <a href='scm.php'</a> 
</div> 

一種可能的替代辦法是動態包僅單個元件的javascript:

<?php  
    if(!isset($_SESSION['firstname'])) { 
     $id2 =$_REQUEST['firstname']; 
     echo "<b>".$id2."</b>"." Logged in"; 
    } 
?> 

<div id="MNUOBJ7DFA52C14221AD2" 
    style=" position:absolute; top:549px; left:22px; width:174px; height:34px; z-index:3016;"> 
    <script type="text/javascript" src="data6_1.js"> 
     var menuItems = [ 
      [ 
       "Collected Material", 
       "scm.php?firstname=<?php echo $id2; ?>", 
       "", "", "", "", "0", "0", "", "", "", 
      ], 
     ]; 
     menuItems.([<?php echo $id2; ?>]); 
    </script> 
    <a href='scm.php'</a> 
</div> 

可能根據您的php引擎的設置,能夠將<?php echo $id2; ?>縮短爲<?= $id2 ?>。該變體更加緊湊和可讀。

而且不要忘了,可能需要調整你的「內容安全策略」頭,允許內嵌腳本的執行:http://content-security-policy.com/

+0

謝謝,但我仍然越來越$ id2作爲輸出。我的js參數是否正確? – Malik

+0

我的意思是這個:var menuItems = [ [「收集材料」,「scm.php?firstname =。$ id2」,「」,「」,「」,「」,「0」,「0」 「,」「,」「,], ]; – Malik

+0

啊,對不起,我沒有發現頂部的問題。我會編輯我的答案... – arkascha

相關問題