在'selecteditems.php'页面上,我有一个这样的表格:
<form method="POST" name="selecteditems" action="nextpage.php">
....i have some code here to display the values of the SESSION array in a table....
<input type="button" name="clear" value="Clear Session" onclick="window.location='selecteditems.php'">
<input type="submit" name="next" value="Go to Checkout">
</form>
在'selecteditems.php'页面上的表单之前,我有一些代码将数据($ _REQUEST params从名为'selecteditems.php'的页面)添加到$ _SESSION数组(这很好)。 在表单中我有一些代码来显示$ _SESSION数组中的所有内容(这很好)。如果会话为空,则应打印“会话为空”。
我的问题: 我希望能够点击“清除会话”按钮并销毁会话以及重新加载“selecteditems.php”页面以说“会话为空”。如果点击“转到结账”按钮,我想简单地发送到nextpage.php页面。
在删除会话后,获取“selecteditems.php”以重新加载并回显“session is empty”,我们将不胜感激。
答案 0 :(得分:2)
只需将您的清除会话按钮设置为type="submit"
的提交按钮(您将其设为type="button"
,其中跨浏览器的行为不一致什么都不做)然后您就可以了将其视为正常的提交流程:
if(isset($_POST['clear'])) {
session_destroy(); // Or other session-unsetting logic
header("Location: selecteditems.php"); // Reload your page
}
if(isset($_POST['next'])) {
//next page logic
}
您甚至可能不需要重新加载明确的会话页面。对于“会话清除消息”,您可以将逻辑添加到$_POST['clear']
块,或重定向到'selecteditems.php?msg =已清除'并搜索$_GET['msg']
并输出正确的消息,向上对你:)