将PHP变量传递给Javascript / jquery

到目前为止,我知道将php变量传递给javascript的两种方法。 一个是通过使用

 $(document).ready(function() phpvalue=$("#hiddeninput").val() })   

另一个是通过例如按钮和使用onclick

   function clickf(phpvalue) { }  <input type="submit" onclick="clickf()"> 

所有这些都很棒但是:

  1. 还有其他方法让我失踪吗?

  2. 哪一个是最好的”?

  3. 我可以在脚本或外部js中使用的任何机会吗?

  

像其他人已经回答过的那样,只要放置一个PHP标签就可以放置JS值了,比如var foo = ;var foo = ;

如果要在外部JavaScript文件中使用它,则必须确保PHP解析.js文件。 如果这不是您的选择(例如,您的主机不允许),我建议您在中的标记中设置值,然后仅从外部JavaScript引用变量。 在这种情况下,我强烈建议你将它们命名为var app_vars = { foo: } ,以免弄乱全局对象。

另一种方法是通过Ajax来检索值。 但这种方法的可行性取决于您的用例。

还有另一个提示:如果你想传递多个变量或数组,那么自5.2版以来就有JSON被添加到PHP中:

  array('foo', 'bar'), 'val2' => 'hello world' ); ?>  
  

您可以直接生成JavaScript,而不是将值分配给隐藏的输入:

 $script = << var phpvalue = $phpvalue;  EOT; echo $script; 

对于顶级示例,您不需要使用val,您可以使用任何您喜欢的attr。 例如

 phpvalue="myvalue" 

然后在jquery内

 $("#hiddeninput").attr("phpvalue");