如果我在此控制器的索引功能中执行的验证为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');
}
?>
我有一个存储在extern js文件中的JS函数,我想在这个TODO中调用它。 它应该这样称呼:
show_msg_xajax("warning", "System was unable to find an Upload ID");
由于检查条件是在控制器的index()
中完成的,我不知道如何调用这个js函数。
如果它是由视图中的事件调用的,我将创建一个ajax方法来执行此函数。但是如何在index()
中调用javascript函数?
我已经检查了这个答案:Calling javascript function from controller codeigniter但它没有帮助我。
答案 0 :(得分:2)
我找到的解决方案是将函数直接发送到该页面的页脚...所以我在页脚模板中添加了一个新变量(我称之为javascripts)。 在我做的控制器的索引函数中:
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>
}
无论如何,谢谢你的帮助
答案 1 :(得分:1)
您需要使用JS函数添加文件作为视图:
$this->load->view('path-to-js-message');