我有PHP和Javascript变量通信的问题。我有这段代码:
<?php
$php_var = 'lol';
?>
<html>
<script type="text/javascript" charset="utf-8">
var php_var = "<?php echo $php_var; ?>";
alert(php_var);
</script>
</html>
由于某些原因,此代码无效(按预期)。我无法将PHP变量的值传递给Javascript变量。出于某种原因,Javascript完全忽略了php标签,并为php_var赋值“”。所以它提醒我把它作为文字的PHP代码。
我做错了什么?我一直坚持这个问题3个小时。这是我服务器的问题吗? (使用网络托管,专用)。谢谢
答案 0 :(得分:5)
使用json_encode()
确保您获得有效的JavaScript表达式(否则新行和引号等字符会破坏内容):
var php_var = <?php echo json_encode($php_var); ?>;
您还需要确保实际为该文件启用了PHP。这通常是通过为文件提供.php
扩展名来实现的。
答案 1 :(得分:1)
使用.php文件扩展名,这将有效。
如果没有,那么你变量不会有值,你可以通过使用像firebug这样的东西看到确切的问题。
答案 2 :(得分:1)
你说你的代码所在的文件扩展名为.html,它应该是.php来呈现php代码。
答案 3 :(得分:0)
好吧,你可以将文件重命名为.php,它应该可以工作,或者你可以做以下事情: 创建.htaccess文件, 添加以下代码 - &gt;
RewriteEngine On
<FilesMatch "(file.html)">
SetHandler php5-script
</FilesMatch>
保存文件, 然后在html文件中添加以下php行在beggining - &gt; 你可以在所选的html文件中编写php代码
或者您可以添加以下规则
RewriteEngine On
file.html file.php