如何从我的控制器调用javascript函数?

时间:2010-07-01 06:30:24

标签: php javascript

我在视图页面中有一个表单,在名为function Login()的控制器中提交一个函数被调用 这是我的登录功能

function Login()
{   
     $EmailId = $this->input->post('mailId');
     $Password = $this->input->post('password');
     $res=$this->friendsmodel->CheckLogin($EmailId,$Password);
     if($res==true)
     {

         $_SESSION['Authenticaton_user']="auth_user";
         $this->session->set_flashdata('item', 'Thanks for logging in');
                      //I want to call javascript function from here
         redirect('friends/Display_News');
     }
     else 
     {
      $this->session->set_flashdata('item', 'Username Or Password is invalid');
         redirect('friends');
     }

}

现在想从if和else语句中调用名为topBar()的javascript函数 这是我的剧本

 function topbar(message) 
{
       var alert = $('<div id="alert">'+message+'</div>');
        $(document.body).append(alert);
        var $alert = $('#alert');
        if ($alert.length) {
            var alerttimer = window.setTimeout(function() {
                $alert.trigger('click');
            }, 5000);
            $alert.animate({ height: $alert.css('line-height') || '50px' }, 200).click(function() {
                window.clearTimeout(alerttimer);
                $alert.animate({ height: '0' }, 200);
            });
        }
}

如何从这里调用javascript

1 个答案:

答案 0 :(得分:3)

您无法从PHP控制器调用javascript函数,但是您可以将一些变量设置为视图的标志以调用该函数:

function Login()
{   
     // I don't know how you interact with your views, so I will just
     // assume that it happens something like this:
     if($res==true)
     {
         // call the function
         $this->view->assign('callTopBar', true);
     }
     else 
     {
         // do not call the function
         $this->view->assign('callTopBar', false);
     }
}

然后,在视图中:

<?php if ($this->callTopBar): ?>
    <script type="text/javascript">
         topbar();
    </script>
<?php endif; ?>