我是Ajax的新手和一般的编程,希望有人可以帮助我。
我在登录页面上使用以下内容。 这用于注册新用户,如果注册成功,将自动将其转发到索引页面。
到目前为止,一切都按预期工作。 如何从此处或之后调用目标索引页面上的jQuery函数? 我要做的是向用户显示一条警告,告诉他们在注册成功后会自动登录 - 所以此警报只会出现在索引页面上,如果有人从登录页面重定向到那里。
我可以扩展下面的链接来传递一个变量(例如“&origin=login
”),然后使用PHP来处理索引页面上的那个,但这似乎是一个很大的解决方法,我想知道这是否可以使用Ajax可以更轻松地实现。
我做了一些研究,发现了一些对Ajax的引用但没有明确的指导原则 有人可以帮我这个吗?
我的Ajax(在jQuery中):
case 'registration successful':
$.ajax({
type: "post",
url: "ajax.php",
cache: "false",
data: {
node: 'loginUser',
email: email,
pass: pass
},
success: function(data){
// redirect to index page
window.location.href = baseURL + '/index.php?lang=' + selectedLang;
// after the redirect I would like to show an alert on the targeted index page
}
});
break;
非常感谢, 麦克
答案 0 :(得分:1)
如果我正确理解了您的问题,您可以使用localStorage
在重定向后显示alert
,如下所示:
$.ajax({
type: "post",
url: "ajax.php",
cache: "false",
data: {
node: 'loginUser',
email: email,
pass: pass
},
success: function(data){
//set a localStorage item
localStorage.setItem('showAlert','true');
// redirect to index page
window.location.href = baseURL + '/index.php?lang=' + selectedLang;
// after the redirect I would like to show an alert on the targeted index page
}
});
并在index
页面中,在script
标记或任何已加载的js
文件中写下代码:
$(document).ready(function(){
var showalert=localStorage.getItem('showAlert');
if(showalert==='true')
{
//show the alert
localStorage.setItem('showAlert','false'); //set its value back to false;
}
});
关于 localStorage
- 它存储没有过期日期的数据。
- 本地存储更安全,可以存储大量数据 本地,不影响网站性能。
<强>更新强>
对于您当前的要求sessionStorage
可能适合您,因为您只想在用户登录时存储数据,并希望在注销时清除它。用法类似于localStorage
,而不是localStorage.getItem
或localStorage.setItem
,您可以使用sessionStorage.setItem
或sessionStorage.getItem
那么sessionStorage
sessionStorage对象作为窗口对象的属性存在 支持浏览器(目前是Firefox 3 +,Safari 4+和Internet) 资源管理器8+)。您可以将数据放在sessionStorage对象上 只要该窗口(或标签)打开,该数据就会持续存在。甚至 如果您离开存储数据的页面然后离开 导航回来,保存到sessionStorage的数据仍然可用。 存储在sessionStorage中的任何数据都与协议,主机名, 和页面的端口保存信息,只有页面共享 相同的协议,主机名和端口可以在以后访问该数据。
您可以详细了解sessionStorage
here
答案 1 :(得分:1)
你可以在JS中读取查询字符串(你不必使用PHP)。
我之前使用过这个功能:
function GetQueryStringParams(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return sParameterName[1];
}
}
}
使用localStorage可能会导致旧浏览器出现问题。如果你不得不避免使用查询字符串我建议你使用cookie。
答案 2 :(得分:0)
module.exports = {
print: function (filterValue) {
console.log('filter value is', filterValue);
}
};