Php 从html到javascript的变量

Php 从html到javascript的变量,php,javascript,jquery,web-applications,Php,Javascript,Jquery,Web Applications,我想知道如何解决我的问题,但我不知道哪种方法最好。 因此,我有一个html页面,在该页面中,我通过$\u GET[id\u plot])传递一个id,我这样打印它: echo "var id_get_plot = '".$_GET[id_plot]."'; "; 我想这是一个全局变量,我们都很讨厌。 目标是在外部脚本中使用此var 我现在采用的解决方案是实例化名称空间,然后将var绑定到它,如下所示: echo "var id_get_plot = '".$_GET[id_plot].

我想知道如何解决我的问题,但我不知道哪种方法最好。 因此,我有一个html页面,在该页面中,我通过
$\u GET[id\u plot])
传递一个
id
,我这样打印它:

  echo "var id_get_plot = '".$_GET[id_plot]."'; ";
我想这是一个全局变量,我们都很讨厌。 目标是在外部
脚本中使用此
var

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

  echo "var id_get_plot = '".$_GET[id_plot]."'; ";
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
      });
我想的是:这是解决我问题的好方法吗?如果可能的话,还有其他更优雅的方法来解决这个问题吗


提前感谢您不要从PHP生成JavaScript。使用json_encode()创建json可以使用的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']) ?>)
var Model=window.Model|{
getId:function(){
返回此.id;
},
//作为构造函数会更好,但是既然你想要一个单例
初始化:函数(id){
this.id=id;
}
};
//如果你需要一个以上的值,用它来做一个对象。。。。
Model.init()

“…解决这个问题的优雅方法?”,是的,AJAX是优雅的方法。不要从PHP生成JavaScript。使用
json\u encode()
创建json可以使用的json对象。这将使这两种语言解耦,您的数据将被正确地保存escaped@elclanrs通常我会同意——AJAX是一个很好的解决方案,但仅仅将少量固定数据传递到页面中就有点重了。json_encode()既快又简单。@elclanrs在不需要时发出额外请求?没那么优雅好吧,我明白了,但我也想知道如何将id从html“传递”到javascript。名称空间是一个很好的解决方案吗?这对我来说真的很新鲜。我不知道我可以在javascript中使用php。非常感谢。嗯..它没有从GET调用中获取值\:@steo是的,那里有一个输入错误,它是固定的,但是你应该能够找到它,因为语法不正确