php 表单 - 2 个按钮(一个用于销毁会话并重新加载页面,一个用于进入下一页)
Posted
技术标签:
【中文标题】php 表单 - 2 个按钮(一个用于销毁会话并重新加载页面,一个用于进入下一页)【英文标题】:php form - 2 buttons (one to destroy session and reload page and one to proceed to next page) 【发布时间】:2011-08-10 09:22:16 【问题描述】:在“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”页面上的表单之前,我有一些代码可以将数据(来自名为“selecteditems.php”的页面的 $_REQUEST 参数)添加到 $_SESSION 数组(这工作正常)。 在表单内部,我有一些代码可以显示 $_SESSION 数组中的所有内容(这工作正常)。如果会话为空,则应打印“会话为空”。
我的问题: 我希望能够单击“清除会话”按钮并销毁会话以及重新加载“selecteditems.php”页面以显示“会话为空”。如果单击“Go to Checkout”按钮,我想简单地被发送到 nextpage.php 页面。
在我删除会话后让“selecteditems.php”重新加载并回显“会话为空”的任何帮助将不胜感激。
【问题讨论】:
你尝试过什么吗?如果您还没有尝试过任何东西,就没有problem
很好,@toop。一个问题也很好。
我试过了: if (isset($_REQUEST['clear'])) session_destroy(); 但不会重新加载页面。
【参考方案1】:
只需将您的清除会话按钮设置为带有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=cleared”并搜索$_GET['msg']
并输出正确的消息,由您决定:)
【讨论】:
+1 但只需澄清一点:input type="button"
在浏览器中的工作非常一致:默认情况下它什么也不做。以上是关于php 表单 - 2 个按钮(一个用于销毁会话并重新加载页面,一个用于进入下一页)的主要内容,如果未能解决你的问题,请参考以下文章