我的网站上的文件DoStuff.php中有一个PHP变量thePHPvar。 将PHPvar设置为字符串。
然后,DoStuff.php中的代码
header("Location: http://localhost/theWebite/index.php");
我在index.php的body标签内的onLoad处理程序中需要两件事:
<body onload="doLoad()">
我的doLoad()函数必须能够做两件事:
1)访问'thePHPvar'变量,该变量也是在header()重定向之前的DoStuff.php中的PHP代码中设置的字符串(路径名)。
2)同样,doLoad()必须能够检测'thePHPvar'何时为空,这样可以避免尝试使用 'thePHPvar'并跳过使用该字符串的逻辑。
我是php和javascript的新手,并且对我现在的工作感到印象深刻, 但是我已经花了半天时间,在SO上阅读了很多类似的问题。
我必须能够重定向回index.php,获取此字符串变量,如果已设置(非空),请执行一些javascript代码。
现在这是我的onLoad()所做的,嘿 - 它有效。但不是正确的方式。
<head>
<script type="text/javascript">
function doLoad()
{
alert("Page is loaded");
}
</script>
</head>
如果没有引入一些我需要学习的新东西,比如Ajax等,我怎样才能在javascript,html,php和我在这里完成这些工作?
答案 0 :(得分:2)
将$thePHPvar
包含在您要重定向到的页面的查询字符串中是否可以接受?
header("Location: http://localhost/theWebite/index.php?$thePHPvar");
然后在javascript中你可以查找document.location.search
,例如
<head>
<script type="text/javascript">
function doLoad()
{
alert('thePHPvar is ' + document.location.search.substring(1));
}
</script>
</head>
答案 1 :(得分:2)
如果这个myPHPVar特定于用户,你可以使用session variable作为Jorge说。否则,在标题重定向中传递变量:
header("Location: http://localhost/theWebite/index.php?myVar=" . $myPHPVar);
由于您是初学者,您可能不希望使用JSON将变量从PHP变为Javascript,但如果您必须将大量数据传递给Javascript代码,请查看它。
<script>
var myPHPVar="<?php echo $_GET['myVar']; ?>";
</script>
如果用户对该PHP变量有任何影响,请务必sanitise the variable against XSS attacks.
要检查doLoad
方法中myPHPVar是否为空,请使用if (!myPHPVar) { .... }
答案 2 :(得分:1)
我建议您使用所需的变量设置会话,然后使用会话在下一页上获取变量。 在您重定向到的页面上初始化会话后,您将在javascript上使用它,如下所示:
var variableFromPhp = "<?php echo $the_variable ;?>";
alert(variableFromPhp);
答案 3 :(得分:1)
您可以将其作为GET参数传递,但由于它可以篡改,因此通常不太安全。
上一页:
然后在您重定向到的页面上:
<head>
<?php
session_start();
$the_var=(isset($_SESSION['a_var']) && $_SESSION['a_var'])) ?
$_SESSION['a_var']
: false;
?>
<script type="text/javascript">
function doLoad(the_var)
{
if(the_var){ alert("Page is loaded"); }
}
window.onload=function(){ doLoad(<?php echo var_export($the_var,true);?>); }
</script>
</head>