大家好,我有一个jquery脚本来提交表单,如果成功,它会重新发送json输出。
function subscribe(email, city){
var email = $('input#email').val();
var city = $('select#citySelect').val();
$.ajax({
url: 'http://www.amazingvouchercodes.co.uk/avc_dev/subscribe/subscribeTo',
type: 'post',
data: 'email='+email+'&city='+city,
dataType: 'json',
success: function(json){
window.location.href = json['url'];
$('#notifications').append('<div class="success">'+json['success']+'</div>');
}
});
}
我遇到的问题是它正在显示通知&gt; json成功重定向之前重定向通知没有显示,有没有办法在重定向后显示通知?
感谢所有帮助表示赞赏:)
乔
答案 0 :(得分:0)
您必须执行类似window.location.href = json['url'] + "?redirMsg=Foo+Bar";
的操作,并在您的网页上检查查询字符串中是否有redirMsg
,如果是,请提醒您的通知。
答案 1 :(得分:0)
您是说您希望成功功能导致重定向,然后更新您重定向到的页面上的某些内容?
如果是这样,你需要做一点不同的事情。您重定向到的页面将不会继续执行在此第一页上开始执行的javascript。
一个选项是附加一个查询字符串变量来告诉下一页要更新。如:
window.location.href = json['url'] + "?msg=success";
然后在下一页上,它将检查该querystring变量,并进行更新(如果存在)。
在下一页上,您可以添加以下内容:
function getFromQuery(name){
if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search))
return decodeURIComponent(name[1]);
}
if (getFromQuery("msg")=="success")
{
//do your update here
$('#notifications').append('<div class="success">'+json['success']+'</div>');
}
答案 2 :(得分:0)
像AlienWebguy建议的那样,
这是因为您正在加载新页面,因此任何JavaScript都会重置。
我认为最好的方法是在你的布局/标题中设置一个元素集,在屏幕顶部显示消息(比如这个网站如何通知橙色栏中的某些内容),如果还有待处理的话。因此,在Ajax页面上,您可以设置通知(会话/ cookie)变量。然后下一次页面加载(重定向后),布局将知道有一个待通知的通知,它会在布局/标题中显示它并清除它(所以它只显示一次。)