0

我想知道如何解决我的问题,但我不知道哪种方法是最好的方法。所以我有一个html页面,我在其中id通过$_GET[id_plot]),我打印它是这样的:

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

那,我想是一个全局变量,那,让我们说清楚,我们都讨厌。目标是var在外部使用它script

我现在采用的解决方案是实例化 anamespace然后绑定var到它,如下所示:

HTML

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

脚本.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 对象。这将两种语言解耦,您的数据将被正确转义

将其放入命名空间的最简单方法如下,有更好的方法,但这应该可以帮助您。

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 回答