【问题标题】:Codeigniter base url didn't recognized in javascriptjavascript 中无法识别 Codeigniter 基本网址
【发布时间】: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在哪里?提供文件名和文件位置。

标签: javascript php codeigniter


【解决方案1】:

在你的头文件中声明 var base_url

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

【讨论】:

  • 不,它再次打印相同
【解决方案2】:
<?php echo base_url();?>

PHP 代码不在 js 文件中执行。你必须声明 var base_url = "&lt;?php echo base_url();?&gt;";在模板文件等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...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-14
        • 1970-01-01
        • 2013-09-07
        • 2021-02-24
        • 2011-10-16
        • 1970-01-01
        • 2013-02-27
        • 1970-01-01
        相关资源
        最近更新 更多