在javascript中无法识别Codeigniter基本URL

ryoqjall  于 2022-12-06  发布在  Java
关注(0)|答案(5)|浏览(124)

我在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>'; }?>
t1rydlwq

t1rydlwq1#

问题是你试图在一个JS文件中运行PHP代码。这是行不通的,因为PHP代码只能在扩展名为.php的文件中运行。
要解决此问题,必须在Javascript中设置一个全局变量来保存base_url的值
因此,如果要包含JS文件,则应首先定义变量,如下例所示:

索引.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>

自定义.js

//now we can reference the base_url
alert(base_url+"some/other");
krcsximq

krcsximq2#

在头文件中声明var base_url

<script>
var base_url = "<?php echo base_url();?>";
</script>
kokeuurv

kokeuurv3#

在模板中,我放置了以下内容:

<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 ...

nhhxz33t

nhhxz33t4#

<?php echo base_url();?>

PHP代码不能在js文件中执行。您必须在PHP文件(如模板文件)中声明var base_url = "<?php echo base_url();?>";作为全局变量。

rta7y2nd

rta7y2nd5#

<script>
    var base_url = "<?php echo base_url();?>";
</script>

你可以做一件事复制上面的代码并粘贴到你的头文件

相关问题