1

我有一个用 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(但放在哪里以及如何调用它?)

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

4

2 回答 2

2

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

function change_city_by_nation(nation_id){...}

变成

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

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

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

于 2013-04-16T18:47:13.173 回答
0

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

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

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

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

于 2013-04-16T23:01:38.010 回答