我需要动态检查会话变量是否每隔几秒更改一次。例如,PHP会话变量“x”可能具有“1”的值,然后在五秒后具有值“2”。
PHP会话变量“x”通过使用表单进行更改。如果会话变量发生变化,我需要重新加载页面。
如果会话变量发生变化而无需手动刷新页面,如何重新加载页面?
我需要动态检查会话变量是否每隔几秒更改一次。例如,PHP会话变量“x”可能具有“1”的值,然后在五秒后具有值“2”。
PHP会话变量“x”通过使用表单进行更改。如果会话变量发生变化,我需要重新加载页面。
如果会话变量发生变化而无需手动刷新页面,如何重新加载页面?
AJAX是一个很好的解决方案。只需向脚本发出请求,即可返回会话变量的当前值。如果不同,则重新加载。
所以,当您第一次加载页面,你有什么样
注:本示例是依靠jQuery库。
<script type="text/javascript">
var currentSessionValue = <?php echo $_SESSION['something']; ?>;
// pseudo code
setTimeout(checkVariableValue, 5000);
function checkVariableValue() {
$.ajax({
url: 'checkMyValue.php',
success: function(newVal) {
if (newVal != currentSessionValue);
currentSessionValue = newVal;
alert('Value Has Changed.');
doSomethingDifferent_or_refreshPage();
}
});
}
</script>
checkMyValue.php
<?php
start_session();
echo $_SESSION['myVariable'];
?>
你能提供一些代码作为例子吗?我是AJAX的新手。 – 2010-08-18 02:48:39
谢谢。 PERFORM_AJAX_REQUEST会是什么样子?你知道是否可以在不调用其他文件的情况下获得PHP会话变量? – 2010-08-18 02:52:46
页面加载完成后,唯一的方法是通过执行额外的请求来获取$ _SESSION数据的当前状态。 – sberry 2010-08-18 02:56:39
我不喜欢这在我的代码
<script>
function myFunction() {
var name = document.getElementById("name").value;
var email = document.getElementById("email").value;
var password = document.getElementById("password").value;
var phone = document.getElementById("phone").value;
// Returns successful data submission message when the entered information is stored in database.
var dataString = 'name=' + name + '&email=' + email + '&password=' + password + '&phone=' + phone;
if (name == '' || email == '' || password == '') {
alert("Please fill all fields");
} else {
// AJAX code to submit form.
$.ajax({
type: "POST",
url: "signupAjax.php",
data: dataString,
cache: false,
success: function(html) {
var isRegistered = '<?php echo $_SESSION['name'];?>';
var url = '<?php $url = $site_root.'index.php'; echo $url;?>';
if(isRegistered.length > 0)
{
window.location = url;
}
else
{
alert(html);
}
}
});
}
return false;
}
</script>
您使用纯JavaScript?任何图书馆? – krx 2010-08-18 02:49:16
我不确定要使用什么。我认为JavaScript/AJAX将是一个好主意,但我需要一个代码示例。 我在想一个简单的if/then语句,但我需要获取当前的PHP会话变量并使用JavaScript来刷新页面,在不重新加载页面的情况下完成所有这些操作。因此,使用AJAX检查PHP会话变量并将其与当前值进行比较。 – 2010-08-18 02:51:59