codeigniter где разместить общий код js php

У меня есть сайт, разработанный в 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>");
            }
         });
    }

Где лучшее место для сбора всей этой функции JavaScript с какой-то строкой в ​​php? - файл JS (но я должен передать строку php, когда я ее вызываю)
- Помощник (но как?)
- файл php, где объявляют функцию JS как common.php(но куда ее поместить и как ее вызвать?)

У вас есть решение для моей сферы? Спасибо

2 ответа

Решение

Если вам нужно сгруппировать эти сценарии, вы можете создать обычный файл.js, но с измененными параметрами функции - сделать так, чтобы все значения, отправляемые PHP, фактически становились параметрами функции. Так, например,

function change_city_by_nation(nation_id){...}

становится

function change_city_by_nation(url_from_php, nation_id){...} так далее...

И, конечно же, вам необходимо изменить тела функций и вызовы функций (из представлений) впоследствии.

Однако, если у вас есть функция, которая используется только на одной странице, вполне допустимо оставить там функцию JS и встраивать значения PHP так же, как вы делали это в своем примере.

Это довольно распространенная практика для создания переменной JS в вашем <head> (или где-то перед вашим основным файлом JS), который ссылается на базовый URL-адрес или другие общие переменные, необходимые JS, которые генерируются серверной частью.

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

Затем ваш файл Javascript будет включен в конце вашего <body> HTML источник, и он может использовать эти переменные, где это необходимо.

То, как вы генерируете исходные переменные, будет зависеть от того, как вы будете обрабатывать шаблоны в вашем приложении. Общий колонтитул сделает весь процесс проще.

Другие вопросы по тегам