PHP变量为javascript,不起作用
我有一个PHP和Javascript变量通信的问题。我有这样的代码: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个小时。这是我的服务器的问题吗? (使用虚拟主机,专用)。谢谢
使用json_encode()
以确保您得到一个有效的JavaScript表达式(否则字符,如换行符和引号将打破东西):
var php_var = <?php echo json_encode($php_var); ?>;
你还需要确保PHP实际上是对文件中启用。这通常通过给文件.php
扩展来实现。
如果您不需要JSON会怎么样? – nico 2012-07-24 19:06:33
他需要一个JavaScript字符串。提供字符串时,'json_encode'将给他一个有效的JavaScript字符串。 – ThiefMaster 2012-07-24 19:06:55
具有讽刺意味的是,当喂一个字符串时它不会给出有效的JSON :) – Quentin 2012-07-24 19:16:04
好了,你可以重命名文件,.PHP,它应该工作,或者你可以做以下的事情: 创建一个.htaccess文件, 添加如下代码 - >
RewriteEngine On
<FilesMatch "(file.html)">
SetHandler php5-script
</FilesMatch>
保存文件, 然后在HTML文件中添加以下PHP线在beggining - > 比你可以编写PHP代码选择HTML文件中
或者,您可以添加以下规则
RewriteEngine On
file.html file.php
就这样我们确定,你用'.php'扩展名命名文件正确吗? – JaredMcAteer 2012-07-24 19:04:07
这是一个.html文件 – Kalon 2012-07-24 19:05:28
我能做些什么来解决这个问题?使用AJAX? – Kalon 2012-07-24 19:06:32