1

codeigniter で開発されたサイトがあります。
私のサイトの多くのページでは、次のような PHP の文字列を使用して、より同等の関数 javascript/jquery を使用しています。

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 文字列を渡す必要があります)
- ヘルパー (しかし、どのように?)
- 関数 JS を common.php のように宣言するファイル php (ただし、どこに配置し、どのように呼び出すか?)

私の範囲の解決策はありますか?ありがとう

4

2 に答える 2

2

これらのスクリプトをグループ化する必要がある場合は、通常の .js ファイルを作成できますが、関数パラメーターを変更して、PHP から送信されるすべての値を実際に関数パラメーターにします。たとえば、

function change_city_by_nation(nation_id){...}

になる

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

もちろん、後で関数本体と関数呼び出し (ビューから) を変更する必要があります。

ただし、単一のページでのみ使用される関数がある場合は、JS 関数をそのままにして、例で行ったように PHP 値を埋め込むことはまったく問題ありません。

于 2013-04-16T18:47:13.173 に答える
0

<head>ベース URL、またはバックエンドによって生成される JS が必要とするその他の一般的な変数を参照するJS 変数を、(またはメインの JS ファイルの前のどこかに) 作成することは、やや一般的な方法です。

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

次に、Javascript ファイルが<body>HTML ソースの最後に含まれ、必要に応じてこれらの変数を利用できます。

初期変数を生成する方法は、アプリケーションでテンプレートを処理する方法によって異なります。共通のヘッダー/フッターにより、プロセス全体が簡単になります。

于 2013-04-16T23:01:38.010 に答える