javascript 中无法识别 Codeigniter 基本网址
Posted
技术标签:
【中文标题】javascript 中无法识别 Codeigniter 基本网址【英文标题】:Codeigniter base url didn't recognized in javascript 【发布时间】:2016-07-03 06:31:47 【问题描述】:我的 CI 应用程序中有一个 ajax 请求,这是我的 cstom.js 文件。
$(document).ready(function()
var base_url='<?php echo base_url();?>';
$('#add-ct').click(function()
$.ajax(
url:base_url+'stockmanagement/add_category',
data:category:$('#category').val(),
success:function(data)
alert(data);
,
error:function(err)
alert('error'+err);
);
);
);
但是base_url
没有重新定殖,当我检查调试控制台时,base_url
被打印为与这样的源代码相同。
var base_url='<?php echo base_url(); ?>';
更新
我的 javascript 文件包含在视图文件中
<?php if($page=='add-category') echo '<script src="'.base_url().'/assets/js/custom.js"></script>'; ?>
【问题讨论】:
你的文件的文件扩展名是什么? 它是一个 js 文件 custom.js 你希望在一个 js 文件中 php 如何工作? javascript 应该位于您的视图文件中,并带有.php
扩展名,以便它识别 php 代码。
这个javascript在哪里?提供文件名和文件位置。
【参考方案1】:
在你的头文件中声明 var base_url
<script>
var base_url = "<?php echo base_url();?>";
</script>
【讨论】:
不,它再次打印相同【参考方案2】:<?php echo base_url();?>
PHP 代码不在 js 文件中执行。你必须声明
var base_url = "<?php echo base_url();?>";
在模板文件等PHP文件中作为全局变量。
【讨论】:
【参考方案3】:问题是您试图在 JS 文件中运行 PHP 代码。这不起作用,因为 PHP 代码只能在以 .php
扩展名命名的文件中运行。
要解决这个问题,您必须在 Javascript 中设置一个全局变量来保存 base_url 的值
所以如果你想包含一个 JS 文件,你应该首先定义变量,如下例所示:
index.php
<html>
<head>
<!-- SET GLOBAL BASE URL -->
<script>var base_url = '<?php echo base_url() ?>';</script>
<script src="/assets/js/custom.js"></script>
</head>
<body>
</body>
</html>
custom.js
//now we can reference the base_url
alert(base_url+"some/other");
【讨论】:
【参考方案4】:在模板中,我放了这个:
<script>
var base_url = "<?= base_url(); ?>";
</script>
<script src="<?= base_url('assets/js/main.js'); ?>">
然后在 main.js 中像这样:
function logout()
var element = document.getElementById("lobtn");
location.href = base_url+"user/logout";
它会将您发送到“yoursite.com/user/logout”...
编辑:“lobtn”是您注销按钮的 ID...
【讨论】:
以上是关于javascript 中无法识别 Codeigniter 基本网址的主要内容,如果未能解决你的问题,请参考以下文章