yangball 发表于 2009-12-24 13:36:57

控制器里能不能加入JS代码?

我在控制器里检查用户密码是否合法,合法的跳转到主页,非法的会 弹出 alert("") 这个。
JS能不能写在控制器里???
如果不能,那怎样实现这个功能??

Hex 发表于 2009-12-24 13:58:52

所有输出都放到视图里,即使你只显示一个 a,也要用视图,明白了吧?
否则 PHP 代码和 HTML 代码混合和以前的编程方式还有什么区别?如何体现 MVC 的优势呢?

如何写 JS 就和 PHP 没什么关系了。

yangball 发表于 2009-12-24 16:10:28

我现在说一下我的需求吧。。

用户登陆,提交到 checklogin 控制器 里 index 方法里检测用户密码是否正确

需要查数据库用户密码时 调用 model 里的一个函数,这个函数只返回 true 或者 false 。

那么控制器里

function index(){
if(islogin($pwd,$name)) {         //使用方法检测用户密码,存在返回 true,否 false
            //这里是用户合法,则进入 index.php 主页。怎样实现????
}

else{
         //这里是用户密码错误要做的动作。
       //动作1:alert("用户密码错误")
          //动作2:跳到登陆页控制器 login/index

//************ 请问这些怎样做??我刚学 框架,请明示,谢谢

}

yinzhili 发表于 2009-12-24 16:13:39

控制器里能够写JS代码,用echo 输出即可,类似这样:
echo "<script language='JavaScript'>alert('这是一条警告信息!');</script>";

但你这样写的话,就违背了MVC的基本思想了,这些本该放到视图里面去的。你可以在控制器中把JS语句通过字符串变量传递给视图。

yangball 发表于 2009-12-24 16:16:32

请问,我上述的要求,你是怎样实现的??

Hex 发表于 2009-12-24 17:27:40

//这里是用户合法,则进入 index.php 主页。怎样实现????
直接用 redirect('控制器'); 保证之前没有任何 HTML 代码就可以。

//这里是用户密码错误要做的动作。
//动作1:alert("用户密码错误")
//动作2:跳到登陆页控制器 login/index
这里应该装载一个 view,名字随意。内容是
<script type="text/javascript">
alert('提示');
window.location = '要转向的地址(必须是绝对URL)';
</script>

PS: 你要明白这里和框架没什么关系,纯 PHP 也要这么写。对于这一点我觉得你还是没有考虑清楚。
页: [1]
查看完整版本: 控制器里能不能加入JS代码?