0

私の問題を解決する方法について疑問に思っていますが、これを行うための最良の方法がわかりません。だから私は次のように印刷することを通過しているhtmlページを持っています:id$_GET[id_plot])

  echo "var id_get_plot = '".$_GET[id_plot]."'; ";

それは、グローバル変数だと思いますが、それは、はっきり言ってみましょう、私たちは皆嫌いです。目標は、これvarを external 内で使用することscriptです。

私が現在採用している解決策は、次のように a をインスタンス化してnamespaceからそれにバインドするvarことです。

HTML

      echo " Model = Model || {};
             Model.id_get_plot = '".$_GET[id_plot]."'; ";

SCRIPT.JS

      Model = Model || {};
      Model.get_id = function(){ 
         console.log(this.id_get_plot) //it prints the right value
      });

私が考えているのは、これは私の問題を解決する良い方法ですか? 他にも、可能であれば、これを解決するよりエレガントな方法がありますか?

前もって感謝します

4

1 に答える 1

1

PHP から JavaScript を生成しないでください。json_encode() を使用して、JS で使用できる JSON オブジェクトを作成します。これにより、2 つの言語が分離され、データは適切にエスケープされます。

名前空間に配置する最も簡単な方法は次のとおりです。より良い方法がありますが、これでうまくいくはずです。

var Model = window.Model || {
     getId: function() {
        return this.id;
     },
     // Would be better as a constructor, but since you want a singleton
     init: function(id) {
         this.id = id;
     }
};
// If you need more than one value, make an object out of this....
Model.init(<?php echo json_encode($_GET['id_plot']) ?>)
于 2013-06-18T21:54:03.507 に答える