Я использую codeigniter 2, и у меня есть папка с темами из js , img , css- папок.
Внутри папки js имя файла js_functions.php содержит:
<?php header("Content-type: text/javascript"); ?> /** * GLOBAL VARIABLES & PATHS * * path definitions for jquery inline usage * */ var base_url = '<?=base_url();?>'; // ------------------------------------------------------------------------ /** * jquery.message Global Implementation * * Shows message if any session flashdata named message is set * */ <?php if($this->session->flashdata('message')):?> $(function() { $().message("<?=$this->session->flashdata('message');?>"); }); <?php endif; ?> // ------------------------------------------------------------------------
и, вызывая в нем файл просмотра
<script type="text/javascript" src="<?=base_url();?>themes/admin/js/js_functions.php"></script>
корректно отображает. Но он возвращается на экране проверки хрома:
var base_url = '<br /> Uncaught SyntaxError: Unexpected token ILLEGAL
и в браузере, когда вы вызываете страницу из адресной строки:
var base_url = '<br /> <b>Fatal error</b>: Call to undefined function base_url() in <b>F:\xampp\htdocs\themes\js\js_functions.php</b> on line <b>11</b><br />
Что не так? Разве это не правильный способ использования php во внешнем файле js / php?
Вам нужно создать контроллер, чтобы получить скрипт. Может быть js
. Внутри вашего контроллера вы устанавливаете заголовки типа контента и загружаете представление, которое содержит выше javascript. Допустим, у вас есть контроллер js
class Js extends CI_Controller{ public function js_functions(){ $this->output->set_header('Content-type: text/javascript'); $data = array( 'messages' => $this->session->flashdata('message')); $this->load->view('jsfunc',$data); } }
И вы можете загрузить сценарий в главном представлении, как это
<script src="<?php echo base_url('js/js_functions'); ?>"></script>
Если вы хотите генерировать динамические js
, css
файлы. Используйте стандартный MVC-метод. Создайте папку в папке с именем js или css. Создавайте файлы js или css в виде файла просмотра php. Например: slider.js.php
.
Создайте контроллер themejs.php
. Переместите все файлы js или css на этот контроллер, который вам нужен, используя маршрутизацию. И внутри этого контроллера сделать динамическое действие, передать varibles в js, css просматривать файлы. И напечатайте их заголовком
base_url()
является функциональной частью помощника URL- base_url()
CI. Если вы хотите использовать его в этом файле, и вы не хотите создавать экземпляр объекта $ CI, вам придется реализовать свою собственную версию этой функции.