1

可能重复:
将 PHP 字符串传递给 Javascript 变量(并转义换行符)

我对 Javascript/jQuery 和 PHP 的概念很陌生。我已经使用在 Appserv 中实现的 PHP 两周来从 modbus 设备获取数据并将其存储在 csv 文件中。现在我想使用 jQplot 绘制数据。我正在尝试编写一个简单的程序,首先看看我是否可以在 html 中同时实现 php 和 javascript 代码。这是我用 html 编写的代码,同时使用了 javascript 和 php。

<!doctype html>
<html>
<head>
<title>Demo</title>
</head>

<body>
<h2>This is a script</h2>
<script type="text/javascript">
    var out = <?php echo "Hello"?>;
    //var out = "Hello"
    document.write(out);
</script>

</body>
</html>

当我在浏览器中运行此代码时(我在 Windows 7 中使用 google chrome),我只得到标题“这是一个脚本”。但是,如果我删除带有 php 代码的行并取消注释下一行

var out = "Hello";

然后代码像它应该的那样用“Hello”打印输出。为什么是这样?

4

3 回答 3

5

您需要在 PHP 标记周围添加引号,如下所示:

var out = "<?php echo "Hello"?>";

否则在 PHP 解析文件并输出后,它会像这样输出:

var out = Hello;

...请注意您缺少引号,JavaScript 不会喜欢这样。

于 2012-12-13T10:20:07.217 回答
0

我想你忘了附上你的 php 代码,因为你给你的 out 变量赋值:

    var out = <?php echo "Hello"?>;

应该 :

    var out = "<?php echo "Hello"?>";

如果我错了,请纠正我,但我认为这就是问题所在。:)

编辑:看起来有些人比我快!

于 2012-12-13T10:25:45.380 回答
0

我同意 Ben Everard 和 Eddy Yuansheng Wu 的观点,稍作修改

这有效:

var out = "<?php echo 'Hello'?>";

这不起作用

var out = "<?php echo "Hello"?>";

原因:使用双引号会认为它是字符串的结尾,js会停止它的功能。

于 2012-12-13T11:46:10.657 回答