2013-04-16 70 views
1

我有一個網站在codeigniter開發。
在我的網站很多頁面我有更平等的功能的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中一些字符串這一切的javascript函數? (但我怎麼通過這個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

在你的<head>(或者在你的主JS文件之前的某個地方)創建一個引用基本URL的JS變量或JS後端生成的JS所需的其他常用變量是常見做法。

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

然後,你的JavaScript文件將包含在您的<body> HTML源端,它可以利用這些變量在必要。

您如何生成初始變量將取決於您在應用程序中如何處理模板。一個共同的頁眉/頁腳將使整個過程更容易。