用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3457|回复: 5
收起左侧

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

[复制链接]
发表于 2009-12-24 13:36:57 | 显示全部楼层 |阅读模式
我在控制器里检查用户密码是否合法,合法的跳转到主页,非法的会 弹出 alert("") 这个。
JS能不能写在控制器里???
如果不能,那怎样实现这个功能??
发表于 2009-12-24 13:58:52 | 显示全部楼层
所有输出都放到视图里,即使你只显示一个 a,也要用视图,明白了吧?
否则 PHP 代码和 HTML 代码混合和以前的编程方式还有什么区别?如何体现 MVC 的优势呢?

如何写 JS 就和 PHP 没什么关系了。
 楼主| 发表于 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

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

}
发表于 2009-12-24 16:13:39 | 显示全部楼层
控制器里能够写JS代码,用echo 输出即可,类似这样:
echo "<script language='JavaScript'>alert('这是一条警告信息!');</script>";

但你这样写的话,就违背了MVC的基本思想了,这些本该放到视图里面去的。你可以在控制器中把JS语句通过字符串变量传递给视图。
 楼主| 发表于 2009-12-24 16:16:32 | 显示全部楼层
请问,我上述的要求,你是怎样实现的??
发表于 2009-12-24 17:27:40 | 显示全部楼层
//这里是用户合法,则进入 index.php 主页。怎样实现????
直接用 redirect('控制器'); 保证之前没有任何 HTML 代码就可以。

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


PS: 你要明白这里和框架没什么关系,纯 PHP 也要这么写。对于这一点我觉得你还是没有考虑清楚。

本版积分规则