在 Codeigniter 中使用带有.php扩展的外部 js
Using external js with .php extension in Codeigniter
我正在使用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 />
怎么了?这不是在外部js/php文件中使用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 方法。在view
文件夹中创建一个名为 js 或 css 的文件夹。创建 js 或 css 文件作为 php 视图文件。例如:slider.js.php
.
使控制器themejs.php
。使用路由将所有 js 或 css 文件转发到您需要的此控制器。并且在这个控制器内部进行动态动作,将变量传递给js,css视图文件。并用标题打印它们
base_url()
是 CI url 帮助程序的功能部分。如果要在该文件中使用它,并且不想创建$CI对象的实例,则必须实现该函数的自己的版本。
相关文章:
- PHP抓取没有扩展的远程映像
- 简单的一个?将变量从 Chrome 扩展程序页面传递到 PHP 页面
- PHP的数字精度如何扩展它
- Javascript 警报弹出窗口是否扩展了 PHP 会话
- 使用 PHP 或 JS 检查域扩展名
- 在 Codeigniter 中使用带有.php扩展的外部 js
- 在Nginx上运行PHP和Node.js(PHP的PHP扩展文件,Node的html扩展文件)
- php v8js中的扩展是什么
- 如何向我的网站发送简单的消息'来自Chrome扩展的php
- 如何从php实现的js脚本传递访问令牌到扩展的localStorage
- 有效的方式来扩展PHP/AJAX轮询网站的变化
- 在PHP中扩展chart.js会导致解析错误
- 如何在PHP中通过base64验证大小和图像扩展
- Jquery扩展不工作与多个PHP要求
- 我如何在PHP和Jquery的帮助下使用chrome扩展与我的数据库进行交互
- Chrome扩展,通过php传递大变量到其他Windows
- 如何保存表单/文本区域的文件没有文件扩展名PHP
- 扩展如何与数据库交互而不强制用户安装服务器和php
- 关于php的url重写和js扩展
- 使用JS或PHP检测Firefox中启用的扩展