如何在codeigniter中的控制器索引中调用javascript函数


How to call javascript function in the index of a controller in codeigniter?

如果我在该控制器的索引函数中进行的验证为false,我正在尝试调用控制器内部的javascript函数,以在页面中显示警告消息。

这是我的代码:

<?php
public function index() {
    $this->load->model('uploads_m');
    $this->load->helper('form');
    $template_vars = Array();
    $this->load->vars($template_vars);
    $data = Array();
    $data['currentUploadId'] = $this->uploads_m->get_lastUploadId();
    $data['fileTypes'] = $this->uploads_m->getAllFileTypes();
    $data['existingFiles'] = Array();
    if (isset($data['currentUploadId'])) {
        $data['existingFiles'] = $this->uploads_m->get_UploadedFilesFromUploadId($data['currentUploadId']);
    }else {
        // TODO create warning message to tell that uploadid was not generated
    }
    $this->load->view('include/header');
    $this->load->view('upload_files', $data);
    $this->load->view('include/footer');
}
?>

我有一个JS函数存储在一个extern JS文件中,我想在这个TODO中调用它。应该这样称呼:

show_msg_xajax("warning", "System was unable to find an Upload ID");

由于检查条件是在控制器的index()中完成的,我不知道如何调用这个js函数。如果它被视图中的事件调用,我会创建一个ajax方法来执行这个函数。但是如何在index()中调用javascript函数it?

我已经检查了这个答案:从控制器codeigniter调用javascript函数,但它对我没有帮助。

我找到的解决方案是将函数直接发送到该页面的页脚。。。所以我在我的页脚模板中添加了一个新的变量(在这里我调用我的javascript)。在控制器中的索引函数中,我做了:

if (isset($data['currentUploadId'])) {
        $data['existingFiles'] = $this->uploads_m->get_UploadedFilesFromUploadId($data['currentUploadId']);
} else {
        // TODO criar alerta de erro no sistema que não gerou UPLOADID
        $template_vars['foot_javascripts_inline'] = 'show_msg_xajax("error", "System was unable to find an Upload ID");';
}

在我的页脚模板中,我添加了:

if (isset($foot_javascripts_inline)) { ?>
    <script> <?php echo $foot_javascripts_inline ?> </script>
}

无论如何都要感谢的帮助

您需要添加带有JS函数的文件作为视图:

$this->load->view('path-to-js-message');