将PHP输出解析为javascript的变量

时间:2013-10-19 08:25:35

标签: javascript php flot

我正在尝试使用here中的示例填充Flot图表。我已经尝试了几个小时,但无法将PHP输出解析为Javascript变量。在这里分解是硬编码数据的例子......

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<style type="text/css">
body { font-family: Verdana, Arial, sans-serif; font-size: 12px; }
#placeholder { width: 450px; height: 200px; }
</style>

<!--[if lte IE 8]><script type="text/javascript" language="javascript" src="excanvas.min.js"></script><![endif]-->
<script type="text/javascript" language="javascript" src="flot/jquery.js"></script>
<script type="text/javascript" language="javascript" src="flot/jquery.flot.js"></script>

<script type="text/javascript">
var d1 = [[1,7],[2,8],[3,7],[4,7]];

$(document).ready(function () {
    $.plot($("#placeholder"), [d1]);
});
</script>
</head>

<body>
    <div id="placeholder"></div>
</body>
</html>

上面使用的系列数据是我设置的用于查询我的mysql数据库的php文件的输出。但是,当我将两者合并为一个.HTML页面时,我无法将PHP输出解析为javascript绘图区域。以下就是我的......

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<style type="text/css">
body { font-family: Verdana, Arial, sans-serif; font-size: 12px; }
#placeholder { width: 450px; height: 200px; }
</style>

<!--[if lte IE 8]><script type="text/javascript" language="javascript" src="excanvas.min.js"></script><![endif]-->
<script type="text/javascript" language="javascript" src="flot/jquery.js"></script>
<script type="text/javascript" language="javascript" src="flot/jquery.flot.js"></script>

<?php

    $server = "myserver:1234";
    $user="dbuser";
    $password="userpass";  
    $database = "dbname";

    $connection = mysql_connect($server,$user,$password);
    $db = mysql_select_db($database,$connection);

    $query = "SELECT X, Y FROM dbtable";
    $result = mysql_query($query);        

    while($row = mysql_fetch_assoc($result))
    {
        $dataset1[] = array($row['X'],$row['Y']);
    }
    $final = json_encode($dataset1,JSON_NUMERIC_CHECK);

?>  

<script type="text/javascript">
var d1 = <?php echo $final; ?>;

$(document).ready(function () {
    $.plot($("#placeholder"), [d1]);
});
</script>
</head>

<body>
    <div id="placeholder"></div>
</body>
</html>

最后,如果可能的话,我也想动态更新这个图表,但首先要做的事情!在此先感谢:)

4 个答案:

答案 0 :(得分:2)

  

但是当我将两者合并为一个 .HTML 页面时,我无法将PHP输出解析为javascript绘图区域

PHP脚本需要.php扩展名。如果您尝试在HTML页面中输出PHP代码,它将只显示为纯文本。如果您希望代码执行(您可能会执行),请将扩展名更改为.php

请注意,在HTML页面中解析PHP可能会有一些.htaccess tricks,但我怀疑你是否需要它。

答案 1 :(得分:0)

你没有回应$ final变量

var d1 = <?php echo $final; ?>

答案 2 :(得分:0)

试试这个

var d1 = <?=$final; ?>;

答案 3 :(得分:0)

你实际上并没有回应你的结果字符串。

<?= $final; ?>