Я использую CodeIgniter 2 и у меня есть моя тема папка состоит из JS, IMG, CSS папки.Использование внешних JS с расширением .php в Codeigniter
Внутри 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>
визуализирует правильно. Но он возвращается в инспектировать экране Chrome:
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_functions.php' автономным файлом или он включает в себя другие файлы? Если он является автономным, как он знает, что такое 'base_url()'? – TRiG
@TRiG не содержит файлов. Я думаю, это вопрос, который вы упомянули: как он может знать, что он работает в кодеригнере? –
Ну, это твоя проблема, но я недостаточно знаком с CodeIgnitor, чтобы знать, как ее исправить. Что вы ожидаете от '$ this' в контексте этого скрипта? – TRiG