我一直在寻找这个互联网,但是,似乎无法找到解决方案。我有一个PHP脚本设置$_SESSION['x']
,如果使用引导程序警报设置,我会在页面上显示它。然而,这个糟糕的事情永远不会消失,我无法弄清楚如何去做。我不是试图编辑或在变量中插入任何内容,只是试图将其设置为“解除”错误。
这是我的代码:
带有PHP代码的HTML页面,用于显示错误警报。
if(isset($_SESSION['x']) && !empty($_SESSION['x'])){
echo "<div class='alert alert-danger alert-dismissible fade show' role='alert'>" . $_SESSION['x']. " Error: " . $_SESSION['errorCode']."
<button id='close' type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
</div>";
}
JS档案
$("#close").click(function(){
$.get("../php/scripts/clear/employeeError.php");
});
PHP文件清除变量
session_start();
if(isset($_SESSION['x'])){
unset($_SESSION['x']);
}
echo $_SESSION['x']; // Just to see if it unsets
我想要发生的是当我点击关闭按钮取消设置$_SESSION['x']
而不刷新页面时。单击“关闭”按钮后,警报将在当前页面上消失,当您稍后返回该页面时,将取消设置$_SESSION['x']
,因此您不会再次看到错误。
我想你正在指出一些关于服务器端和客户端编程的关键概念。您正在使用PHP来呈现HTML页面,在呈现PHP环境之后的任何更改都不会影响您已经呈现的页面。
请参阅;
这是我想到的工作
$(function () {
$('.close').click('.close', function(){
$.get('php/scripts/clear/employeeError.php', function(data){
alert("Server Returned: " + data); //Used to verify script runs
});
return false;
});
});
基本上现在发生的是我使用这个内联脚本来监听.close
然后它将调用脚本来取消设置会话变量。