如何重置使用“粘滞”值的表单

时间:2012-04-03 21:41:39

标签: php forms session sticky

我有一个表单,我在输入中使用value="<?php echo $_SESSION['myVar']; ?>",以便值为“粘性”,以便在服务器端验证期间重新填充值等。我的问题是如何制作重置按钮(type =“reset”)实际上重置了表单并删除了保存的值。我正在寻找一个不使用javascript 的解决方案,如果可能的话!谢谢!

FORM:

<ul>
 <li>
  <label class="label1" for="name"> Name: </label>
  <input class="input1" type="text" name="name" id="name"  maxlength="40" value="<?php echo $_SESSION['name']; ?>" />
 </li>
 <li>
  <label class="label1" for="email"> Email: </label>
  <input class="input1" type="text" name="email" id="email"  maxlength="40" value="<?php echo $_SESSION['email']; ?>" />
 </li>
 <li>
  <label class="label1" for="message"> Message: </label>
  <textarea class="flat input1" name="message" id="message" rows="5" cols="40"><?php echo $_SESSION['message']; ?></textarea>
 </li>
</ul>

FORM HANDLER:

//save user entered values
$_SESSION['name'] = trim($_POST['name']);
$_SESSION['email'] = trim($_POST['email']);
$_SESSION['message'] = trim($_POST['message']);

4 个答案:

答案 0 :(得分:1)

如果您不想使用javascript,则需要重新加载页面。使此按钮成为reset_session.php的链接,您只需编写

$_SESSION['name'] = "";
$_SESSION['email'] = "";
$_SESSION['message'] = "";

然后使用header()重定向回表单。如果您想留在页面上,可以将ajax请求发送到同一页面(reset_session.php),然后更新输入中的值。

答案 1 :(得分:0)

您需要使用JavaScript。重置将始终重置为加载标记时表单的原始值。

答案 2 :(得分:0)

“重置”按钮会将表单重置为value属性中的值。就是这样。在填充这些值时,它将始终重置为这些值。

如果要将其重置为空值,请不要填充/预填充这些值。

答案 3 :(得分:0)

如果你只使用php,你可以试试:  unset($_SESSION['myVar']);session_destroy();