2016-02-13 119 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

相关问题