我试图在javascript中传递一个php变量但是它无效。
<a href="javascript:wait1();getPass('<?php echo $current?>');">Comment</a>
是否可以这样做,或者我可能在某处错误...
感谢您的回复! :)
答案 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。