我正在尝试清除使用PHP会话填充的表单。
Your name: <input type="text" name="name"
value="<?php echo($_SESSION['username'])?>" >
Your email address: <input type="text" name="email"
value="<?php echo($_SESSION['email'])?>">
<br>
<textarea name="story" cols="60" rows="10">
<?php echo($_SESSION['story']); ?>
</textarea>
<br>
<input type="submit" value="Submit"/><input type="reset" value="Reset">
问题是,当我点击重置按钮时,表单不会清除。
我想我需要使用session_unset命令,但无论我把它放在哪里,表单都会在按下重置按钮之前清除。
如何结合session_unset和重置按钮?
答案 0 :(得分:1)
你可以这样做两种方式。你可以开始给两个提交按钮一个NAME,然后制作一个PHP脚本,通过
取消设置定义的会话 <?php
if(isset($_POST['reset']){unset($_SESSION['username'],$_SESSION['email']);}
?>
然后当然将值更改为<?=$_SESSION['username'];?>
和<?=$_SESSION['email'];?>
- 因为如果两个会话包含任何值,它只会显示值。
否则你可以用JQuery来做。
修改强>
^你当然也应该取消设置$_SESSION['story']
(最初没有看到它)
<强> EDIT2:强>
$(document).ready(function(e) {
$("form input[type=reset]").click(function(e) {
$("form input[name=name]").attr("value","");
$("form input[name=email]").attr("value","");
$("form textarea[name=story]").attr("value","");
return false;
});
});
或者如果您希望它重置基于文本的'任何':
$(document).ready(function(e) {
$("form input[type=reset]").click(function(e) {
$("form input[type=text], form input[type=email], form input[type=password], form textarea").attr("value","");
return false;
});
});
^如果您愿意,请添加更多选项:)
答案 1 :(得分:0)
我认为“重置”按钮会将表单重置为从服务器接收的方式。这可能就是为什么它不起作用。它收到了数据,因此按钮恢复了它的原始状态。我可能错了,但之前没有尝试过。
顺便说一句,要取消设置$ _SESSION,你可以这样做
unset($_SESSION['specific']);
或者你可以摧毁整件事。
session_destroy();