2012-07-30 52 views
0

如果登录失败,我需要显示一个对话框。现在我可以在窗体中显示错误行,但我需要使用modals显示错误消息。 这里是我的代码:使用模块登录的错误消息

$sfAuth = new SfAuthenticate(); 
$sfHelper = new SfHelper(); 

$user = $_POST['txtUsername']; 
$pass = $_POST['txtPassword']; 

$checkUser = $sfAuth->checkUserJobSeeker($user); 

if($checkUser) 
{ 
    $login = $sfAuth->loginJobSeeker($user, $pass); 
    if($login) 
    {   
     echo $sfHelper->redirect('forms/jobSeeker/HomeJobSeeker.php'); 
    }else{ 

     echo $sfHelper->redirect('forms/jobSeeker/formLoginJobSeeker.php?err=Invalid Username or Password'); 
    } 
}else{ 
    echo $sfHelper->redirect('forms/jobSeeker/formLoginJobSeeker.php?err=Sorry, We Cannot found your Username'); 
    } 

我想重定向到登录表单后显示对话框。 任何人都可以帮助我吗?

回答

0

穿上formLoginJobSeeker.php这个代码文件

<?php 
if($_GET['err'] == "Sorry, We Cannot found your Username")\ 
{ 
echo '<script> alert("Sorry Wrong Username Or Password");</script>' 
} 
?> 
+0

如何显示使用情态动词,而不是警报的消息? – 2012-07-30 09:14:39

1

要显示一个模式对话框,你需要的JavaScript。检查以前的SO问题:How to create popup window(modal dialog box) in HTML)。同样,我会推荐检出jQueryUI这是javascript库jQuery的扩展。

在3个步骤,这里是如何工作的:

页面包括jQuery和jQueryUI的库脚本

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/base/jquery-ui.css" type="text/css" media="all" /> 
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/jquery-ui.min.js"/></script> 

创建标记要显示的模态对话框

不需要很花哨,但请注意id标签,因为jQuery使用它来知道在对话框中显示哪个元素。

<div id="dialog" title="Basic dialog"> 
    <p>This is the message inside the modal dialog.</p> 
</div> 

显示使用jQueryUI的对话框

<script> 
    $(document).ready(function() { 
     $("#dialog").dialog(); 
    }); 
</script> 

在这里看到一个完整的工作示例:http://jsfiddle.net/wjp94/3/

1

看一看这个小提琴,它应该工作:http://jsfiddle.net/7PwWp/5/

由于要启动用户错误的模式窗口,您可以添加一个条件:

<?php if(isset($_GET['err']): ?> 
    launchWindow('#message'); 
<?php endif; ?> 

在消息框中,你可以把:

<p><?php echo (isset($_GET['err'])? $_GET['err']:''; ?></p> 
+0

我怀疑需要一些额外的代码才能关闭模式框,然后返回到主视图? – 2012-08-06 03:09:18

+1

啊是的..现在更新包括关闭声明。只需点击“关闭”或模式外部即可关闭它 – Allen 2012-08-06 03:26:29

0

如果你想显示对话框,那么你必须使用jQuery的对话框

添加以下代码添加到网页;

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/base/jquery-ui.css" type="text/css" media="all" /> 
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/jquery-ui.min.js"/></script> 

<div id="dialog" title="Basic dialog" style="display:none"> 
    <p> 
     <?php if(isset($_GET['err'])) echo $_GET['err'];?> 
    </p> 
</div> 


<?php if(isset($_GET['err']){ ?> 
    <script type="text/javascript"> 
    $(document).ready(function() { 

     $("#dialog").dialog(); 
    }); 
    </script> 
<?php } ?> 

,如果你想看到你的模式看起来像检查这个环节上 http://codebins.com/bin/4ldqp8p

0

解决了吗? 如果不是,这是我的解决方案。

重定向到某事像那(通知#run_modal):

`forms/jobSeeker/formLoginJobSeeker.php?err=YOUR_MESSAGE#run_modal` 

和JS:

function detectModalParam() 
{ 
    var hash = $(location).attr('hash'); 

    if (hash == '#run_modal') 
    { 
     YOUT_MODAL_FUNCTION(); 
    }; 
} 

$(document).ready(function() 
{ 
    detectModalParam(); 
}