【问题标题】:How to write Codeigniter code in external js file?如何在外部 js 文件中编写 Codeigniter 代码?
【发布时间】:2018-02-06 09:18:19
【问题描述】:

我使用codeigniter框架在Php文件中编写的给定代码,但我想在外部Js文件中编写以下代码并通过脚本src加载头文件如何在external_script.js中执行此操作我试过这个但没有得到这种方式单击提交按钮时正在刷新页面。

在这里我将 base_url 传递给脚本文件 external.js

 <script type="text/javascript">
       base_url: '<?= base_url() ?>',
     </script>
    <script type="text/javascript" src="<?= base_url();?>files/external.js"></script>



//Below code in external.js

$("body").on("submit","#submit_form",function(event){
         event.preventDefault();
            $('#sub_btn').prop("disabled", true);
            $.ajax({

                url: <?=base_url('Controller/method name')?>
                type: "POST",
               data: new FormData(this),
                cache: false,
               contentType: false,
                processData: false,
                success: function (response) {
                    if (response === 'success') {
                        $(".show_res").html('information updated successfully');
                        $('#sub_btn').prop("disabled", false);
                     document.getElementById('submit_form').reset();
                    }

                }
            });

        }));

【问题讨论】:

  • [查看此链接](stackoverflow.com/questions/21246818/…) 你可以在 JavaScript 中获取 base_url
  • @caveboy 我知道如何传递 base_url 但在那如何通过传递 base_url 来调用控制器内部的方法名称我尝试了很多方法但没有任何效果。

标签: javascript jquery codeigniter


【解决方案1】:
var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];

$("body").on("submit","#submit_form",function(event){
     event.preventDefault();
        $('#sub_btn').prop("disabled", true);
        $.ajax({

            url: baseUrl+'Controller/method name',
            type: "POST",
           data: new FormData(this),
            cache: false,
           contentType: false,
            processData: false,
            success: function (response) {
                if (response === 'success') {
                    $(".show_res").html('information updated successfully');
                    $('#sub_btn').prop("disabled", false);
                 document.getElementById('submit_form').reset();
                }

            }
        });

    }));

希望对你有帮助

【讨论】:

  • 你能解释一下base_url的概念吗?实际上我在指定main.js文件的路径之前在头文件中使用了base_url,但在其他情况下加载资产/图像它工作正常,所以为什么在这个案例未按要求工作。
  • 假设 header.php 是您的标头,因此此“= base_url();?>” php 适用于 css、图像等,但是当您需要 external.js 中的基本 url 时,您需要声明全局变量为 var base_url = "= base_url();?>"。在你的 main.js 中,它包含在每个视图中。那么你可以使用这个变量。我认为变量声明存在问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多