codeigniter在哪里放置常见的js php代码

时间:2013-04-16 18:43:14

标签: javascript jquery codeigniter project-layout

我有一个用codeigniter开发的网站 在我的网站的许多页面中,我有更多相同的函数javascript / jquery与PHP中的一些字符串,如下所示:

function change_city_by_nation(nation_id){
        var site_url_city ="<?php echo(site_url('/backend/city/get_city_by_nation_id')); ?>";
        $.ajax({   
            url: site_url_city, 
            async: false,
            type: "POST", 
            data: "nation_id="+nation_id, 
            dataType: "html", 

            success: function(data) {
                $('#city').empty();
                $(data +' option').each(function(index){
                    $('#city').append($(this).html());
                });
                $('#city').prepend("<option value='0' selected='selected'>Tutte le città</option>");
            }
         });
    }

在php中使用某些字符串收集所有这些javascript函数的最佳位置在哪里? - JS文件(但是当我调用它时我必须传递php字符串)
- 助手(但怎么样?)
- 文件php在哪里声明函数JS就像common.php(但在哪里放它以及如何调用它?)

你的范围有一些解决方案吗? 感谢

2 个答案:

答案 0 :(得分:2)

如果你需要对这些脚本进行分组,你可以制作一个常规的.js文件,但是修改了函数参数 - 让PHP发送的所有值实际上都成为函数参数。 所以,例如,

function change_city_by_nation(nation_id){...}

成为

function change_city_by_nation(url_from_php, nation_id){...}等......

当然,之后需要修改函数体和函数调用(从视图中)。

但是,如果你有一个仅在单个页面上使用的函数,那么将JS函数保留在那里并嵌入PHP值就完全可以接受了,就像在你的例子中一样。

答案 1 :(得分:0)

<head>(或主JS文件之前的某个地方)创建一个JS变量,这是一种常见的做法,它引用基本URL或后端生成的JS所需的其他常见变量。

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

然后,您的Javascript文件将包含在<body> HTML源代码的末尾,并且可以在必要时使用这些变量。

如何生成初始变量取决于您在应用程序中处理模板的方式。一个通用的页眉/页脚将使整个过程更容易。