2013-04-16 2 views
1

У меня есть сайт, разработанный в кодеигниторе.
Во многой странице моего сайта у меня есть более равные функции JavaScript/JQuery с некоторой строкой в ​​PHP, как это:codeigniter где поставить общий код js 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? - 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 так же, как в вашем примере.

+0

Спасибо, я подумал, что это более праведный путь для моей цели. Спасибо за ответ +1 –

0

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

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

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

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

Смежные вопросы