如何将参数从php文件传递到java脚本文件

时间:2016-02-13 08:12:17

标签: javascript php

我是javascript的新手并尝试将参数从php发送到js文件。我试图将参数从php文件发送到js文件,但我不知道为什么这不会发生。

代码:

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>

任何想法请帮忙。

1 个答案:

答案 0 :(得分:1)

当您的浏览器请求文件data6_1.js时,您处理该请求时绝对不会涉及PHP。这是对javascript文件的一个简单请求。 $id2如何神奇地变成可能在其他一些根本没有连接的脚本执行中的值?您可以通过php以动态方式创建javascript,但这并不能解决您手头的问题,因为那将是两个完全独立的脚本执行,不会像以前那样共享任何变量那。

相反,您可以将该值作为标记内的被动值传递:<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 echo $id2; ?>缩短为<?= $id2 ?>,具体取决于您的php引擎的设置。该变体更加紧凑和可读。

并且不要忘记可能需要调整您的内容安全政策&#34;标题允许执行内联脚本:http://content-security-policy.com/