我是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>
任何想法请帮忙。
答案 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/