问候!
我需要动态检查会话变量是否每隔几秒就会发生变化。例如,PHP会话变量“x”的值可能为“1”,然后在五秒后,其值为“2”。
使用表单更改PHP会话变量“x”。如果会话变量发生变化,我需要重新加载页面。
如果会话变量更改而不手动刷新页面,如何重新加载页面?
答案 0 :(得分:3)
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'];
?>
答案 1 :(得分:0)
我在我的代码中确实喜欢这个
<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>