Tôi đã gặp vấn đề tương tự tại một trong những dự án của tôi vì vậy tôi đã viết một số js để xử lý việc này bằng cách sử dụng cookie. Đầu tiên tôi thấy hai chức năng đơn giản để thiết lập và nhận cookie giá trị:
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;
}
Thần I đã viết hai chức năng khác để thiết lập và nhận được giá trị đầu vào:
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;
}
}
Và sử dụng jQuery tôi tiết kiệm giá trị đầu vào của người dùng để phiên Cookie
$('input[type=text]').each(function(){
var value = getValue($(this));
$(this).val(value);
}).on('blur', function(){
if($(this).val() != '') {
saveValue($(this));
}
});
tôi hy vọng nó sẽ giúp;)
nếu bạn gửi biểu mẫu của mình qua ajax hơn là yêu cầu làm mới trang cho các biến phiên hoạt động. –
vâng, biểu mẫu được gửi qua ajax..can bạn có thể cung cấp mẫu làm mới trang qua gửi ajax không? – sasori