2009-08-15 113 views
0

好吧,jQuery的Ajax表单和重定向

我需要使用AJAX的一些奇特的弹出窗口和验证的东西,但我想避免的JavaScript重定向如果一切形式确定。

这里是基本简单的情况。

我们有动态网站和一些用户登录表单。 Al逻辑(用户是否存在,密码是否正确等)位于服务器端。

服务器的伪代码如下所示:

$username,$password; //form user input 

if (authenicate($user,$password)){ 
    redirect('myaccount'); 
} 
else { 
    print 'Wrong username and/or password'; //this should be displayed in the popup. 
} 

现在,如果我使用AJAX来显示打印的内容服务器,如何告诉前端离开重定向到服务器端!?

我解决这个愚蠢的方式(因为我有大约15种不同的形式)。如果答案表单服务器是例如“LOGGED”,我使用JavaScript重定向。

只是提及我使用jQuery和这个插件http://malsup.com/jquery/form/。 一些示例代码是在这里: http://pastie.org/584993

我相信你也会明白我需要什么,我都并欣赏的建议和答案:) 谢谢!

回答

3

将JSON发送回客户端。有一个状态参数,一个消息参数和一个Url参数。成功时将Status设置为true,并将Url指向要导向的页面。出错时,将状态设置为False,将消息设置为错误消息。在客户端,使用Status来确定是重定向还是弹出消息

$.ajax({ 
    url: '/login.php', 
    dataType: 'json', 
    data: $('form').serialize(), 
    type: 'post', 
    success: function(data) { 
     if (data.Status) { 
      location.href = data.Url; 
     } 
     else { 
      alert(data.Message); 
     } 
    } 
});