是否可以在javascript中传递php变量?

时间:2010-09-22 06:00:06

标签: php javascript

我试图在javascript中传递一个php变量但是它无效。

<a href="javascript:wait1();getPass('<?php echo $current?>');">Comment</a>

是否可以这样做,或者我可能在某处错误...

感谢您的回复! :)

4 个答案:

答案 0 :(得分:2)

首先,您可能应该将'java'标记更改为'javascript'。

关于你的问题 - PHP在服务器端解析,而Javascript在客户端运行。如果您不打算使用AJAX和异步调用,可以将值写入JS源代码,如下所示:

<script type="text/javascript">
  var foo = <?php echo $yourData; ?>;
  alert(foo);
</script>

答案 1 :(得分:2)

<a href="javascript:wait1();getPass('<?=$current?>');">Comment</a>

答案 2 :(得分:1)

您正在动态生成Javascript。如果你需要这样做的话,你会省去一些麻烦,保持简单。在页面顶部以最简单的方式将数据从PHP传输到Javascript:

<script type="text/javascript" >
var $current = '<%? echo $current; %>';
</script>

正如其他人所指出的那样,你需要使用json_encode编码和引用你的php变量(在这种情况下你可能不需要引号),或者你知道可能的更简单的转义函数值。

现在,您的内联代码可以更简单:

<a href="javascript:wait1();getPass($current);">Comment</a>

最后的建议是将其拉出到自己的函数中,然后使用“onclick”属性。

答案 3 :(得分:0)

如果您的PHP有,请使用json_encode() 这将自动引用并转义您的字符串,并确保正确编码特殊字符以防止跨站点脚本(XSS)攻击。 但是,我认为您必须将UTF-8字符串传递给此函数。

而且vol7ron有一个好处 - 你应该在你的陈述后加上一个分号;,并在那个和问号?之间留一个空格,以便更好地辨认。

<a href="javascript:wait1();getPass(<?php echo json_encode($current); ?>);">Comment</a>

您还可以将布尔值,整数甚至整个数组传递给json_encode(),以将它们传递给JavaScript。