2010-07-01 6 views
0

J'ai une forme dans ma page de vue sur soumettre une fonction dans un contrôleur appelé function Login() est appelé Ceci est ma fonction de connexioncomment appeler une fonction javascript à partir de mon contrôleur?

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'); 
    } 

} 

veulent maintenant appeler une fonction javascript nommé topBar() de mon cas et d'autre déclaration Ceci est mon script

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); 
      }); 
     } 
} 

Comment appeler un javascript d'ici

+0

Vous ne pouvez pas le faire. Le navigateur reçoit une demande, puis il est en cours de traitement et renvoyé, mais vous disposez d'une fonction de redirection avant que votre js ne soit renvoyé. La seule façon d'y parvenir est via un appel AJAX pour se connecter, puis utiliser une redirection JS une fois qu'il a alerté l'utilisateur. – User123342234

+0

duplication possible de [Comment appeler une fonction JavaScript de PHP?] (Http://stackoverflow.com/questions/1045845/how-to-call-a-javascript-function-from-php) – outis

Répondre

3

Vous ne pouvez pas appeler une fonction javascript f elon un contrôleur de PHP, mais vous pouvez définir une variable comme un drapeau pour votre vue d'appeler la fonction:

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); 
    } 
} 

Et puis, à l'intérieur de la vue:

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

$ this-> view -> assign ('callTopBar', true); ici qu'est-ce que callTopBar dénote est-il la page que nous voyons – udaya

+0

Non, ce devrait être le nom du drapeau que vous définissez. Cela pourrait être n'importe quoi, comme 'shouldMyViewCallThisDamnFunctionOrNot'. –

Questions connexes