如何才能使表单记住用户的先前输入或当前输入,即使他/她刷新了页面?
我应该这么做吗,
<div class="row">
<label>Contact Messenger </label>
<input type="text" name="messenger" id="messenger" size="50" maxlength="50" value="<?php echo $_SESSION['messenger']; ?>"/>
</div>
或
<div class="row">
<label>Contact Messenger </label>
<input type="text" name="messenger" id="messenger" size="50" maxlength="50" value="<?php echo $_POST['messenger']; ?>"/>
</div>
或
有什么诀窍可以做到吗?..how?
发布于 2011-08-11 00:26:20
在提交表单的页面上,执行以下操作
session_start();
$_SESSION['data'] = $_POST['data'];
$_SESSION['data_another'] = $_POST['data_another'];
然后您可以在任何地方访问这些会话变量,如下所示
session_start(); // this should be at the top of the page before any html load
<input type="text" name="name" value="<?php echo $_SESSION['data'];?>"/>
在成功调用时刷新页面,如下所示
$.ajax({
type: "POST",
url: "yourfile.php",
data: 'data='+ data,
success: function(){
location.reload();
}
});
发布于 2013-04-23 17:06:20
我在我的一个项目中遇到了类似的问题,所以我编写了一些js来使用cookie来处理这个问题。首先,我找到了两个用于设置和获取cookies值的简单函数:
function setCookie(c_name, value, exdays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
document.cookie = c_name + "=" + c_value;
}
function getCookie(c_name) {
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1) {
c_start = c_value.indexOf(c_name + "=");
}
if (c_start == -1) {
c_value = null;
} else {
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1) {
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start, c_end));
}
return c_value;
}
然后我编写了另外两个函数来设置和获取输入值:
function saveValue(input) {
var name = input.attr('name');
var value = input.val();
setCookie(name,value);
}
function getValue(input) {
var name = input.attr('name');
var value = getCookie(name);
if(value != null && value != "" ) {
return value;
}
}
并使用jQuery将用户的输入值保存到会话cookie中
$('input[type=text]').each(function(){
var value = getValue($(this));
$(this).val(value);
}).on('blur', function(){
if($(this).val() != '' ) {
saveValue($(this));
}
});
我希望它能有所帮助;)
发布于 2011-08-11 00:18:10
这很大程度上取决于字段中的数据来自何处。如果您的场景是呈现一个空白表单,用户输入一些数据,然后在不提交数据的情况下刷新页面,您将无能为力。这要由浏览器来处理。
你也许可以在那里做一些非常奇怪的JavaScript黑客攻击,但我不建议这样做。
另一方面,如果您的数据来自前一个页面或类似的页面,那就是另一回事了。但是你需要告诉我们数据是从哪里来的,这样我才能给你一个合理的答案。
https://stackoverflow.com/questions/7014146
复制相似问题