我试图在触发事件(在此处使用Javascript)时分配会话变量。但是我没有做到这一点,所以它只是在我的页面正文加载之后加载,而不是像按下按钮那样生成后续事件。在Javascript中分配会话变量
我有两个页面:一个是检查是否设置了会话var。如果是,那么执行该操作并将其销毁。
另一个是一个巨大的页面,其中包含一个子页面(使用include),它是一个表单,它被提交给自己,使其重新加载。现在,无论何时生成事件(如按提交按钮,然后单击按钮),该子页面都将设置会话。
first.php - >会议检查和销毁 second.php - >会话初始化和分配
无一不是重复的。
我可以使用后端来存储数据,但是那个巨大的页面有一些限制,不包括其中的其他dbs。
first.php
<?php
session_start();
print_r($_SESSION);
var_dump($_SESSION);
if(isset($_SESSION['submit']) && isset($_SESSION['click'])) {
echo "passed both tests";
unset($_SESSION['submit']);
unset($_SESSION['click']);
session_destroy():
}
var_dump($_SESSION);
print_r($_SESSION);
var_dump($_SESSION);
?>
second.php(形式)
<?php
session_start();
?>
<html>
<head>
<meta name="generator" content="HTML Tidy for Windows (vers 14 February 2006), see www.w3.org">
<script type="text/javascript">
function submit_valid(){
<?php
$_SESSION['submit']='yes';
?>
}
</script>
<script type="text/javascript">
function click_valid1(){
document.getElementById('submitButton').disabled=true;
<?php
$_SESSION['click']='clicked';
?>
window.location.replace("first.php");
}
</script>
<script type="text/javascript">
function load_valid3(){
<?php
$_SESSION['submit']='no';
$_SESSION['clicked']='not';
?>
}
</script>
<script type="text/javascript">
setTimeout (function(){
document.getElementById('submitButton').disabled = null;
},10000);
var countdownNum = 10;
incTimer();
function incTimer(){
setTimeout (function(){
if(countdownNum != 0){
countdownNum--;
document.getElementById('timeLeft').innerHTML = 'Time left: ' + countdownNum + ' seconds';
incTimer();
} else {
document.getElementById('timeLeft').innerHTML = 'Ready!';
}
},1000);
}
</script>
<title></title>
</head>
<body onload="return load_valid3()">
<form action="search.php" method="get" onsubmit="return submit_valid()">
<table border="2" width="150" cellpadding="0" cellspacing="2">
<tr>
<td align="center">
<input type="text" id="query" name="query" size="30" value="">
</td>
<td align="center">
<input type="submit" value="Search"> <input type="hidden" name="search" value="1">
</td>
</tr>
<tr>
<td align="center">
<input type="button" value="SUBMIT" disabled="disabled" id="submitButton" onclick="return click_valid1()">
</td>
<td align="center">
<p id="timeLeft">
Time Left: 10 seconds
</p>
</td>
</tr>
</table>
</form>
</body>
</html>
是否有PHP静态变量的任何概念?这样我就可以摆脱这种情况。
JavaScript运行在客户端上,PHP运行在服务器上。您可能错过了客户端 - 服务器模型的概念。 – Lion
那么如何知道一个特定的事件被触发,或者如何限制用户在触发事件后才能查看特定页面(我不能使用用户登录或任何外部数据库连接) – mohan