如何通过 HTML 表单和下拉菜单动态更改 dygraphs 的 URL
How to dynamically change a URL for dygraphs via a HTML form and drop-down-menu
如果有人能帮助我,我将不胜感激。我确实努力寻找解决方案,但由于我的技能有限而无济于事。这是场景:
我有一个 python 脚本,可以从连接到我的 Raspberry Pi 的传感器输出温度、压力和湿度。同样的脚本还将读数保存到一个以日期作为文件名的 .CSV 文件中,这样我每天都有一个包含一整天数据的唯一文件。
我在 PHP 页面中实现了一个开源 JavaScript 图表库以绘制读数:
同样在同一个 PHP 页面中,我可以从下拉菜单中 select 上面提到的 .CSV 文件。为此,我使用了 foreach 结构。
无论如何请看下面我的 PHP 代码:
<html>
<center>
<iframe width="800" height="600" src="http://SERVER_IP_ADDRESS/graphs.php" frameborder="0" allowfullscreen="" scrolling="no$
</center>
<head>
<script type="text/javascript"
<script src="//cdnjs.cloudflare.com/ajax/libs/dygraph/2.1.0/dygraph.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/dygraph/2.1.0/dygraph.css" />
</head>
<body>
<div id="graphdiv2"
style="width:700px; height:500px;"></div>
<script type="text/javascript">
g2 = new Dygraph(
document.getElementById("graphdiv2"),
"20180508.csv", // path to CSV file
{rollPeriod: 7,
showRoller: true} // options
);
</script>
</body>
</html>
</head>
<body>
<?php
$filename = 'CSV_index.txt';
$eachlines = file($filename, FILE_IGNORE_NEW_LINES);
?>
<form method="post" action="">
<select name="menu">
<option selected value="base">Please Select</option>
<?php foreach($eachlines as $lines){ //add php code here
echo "<option value='".$lines."'>$lines</option>";
}?>
</select>
<button type="submit" name="submit" >Submit</button>
</form>
<?php
if(isset($_POST["submit"]))
{
$selected_value=$_POST["menu"];
?>
现在这是我想要实现的目标:一旦我从下拉菜单中 select .CSV 文件,我希望它自动出现在下面的行中:
"20180508.csv", // path to CSV file
这是库找到 .CSV 文件路径以绘制该图的地方。因此,通过 selecting 特定的 .CSV,我可以绘制特定日期的相关图表。
我尝试了以下方法,但当然都没有用:
"$selected_value", // path to CSV file
"'$selected_value'", // path to CSV file
非常感谢您提供海带。
已解决!
经过大量阅读,我设法解决了我的问题。
下面的代码起到了作用:
<?php
'echo $selected_value;'
?>
如果有人能帮助我,我将不胜感激。我确实努力寻找解决方案,但由于我的技能有限而无济于事。这是场景: 我有一个 python 脚本,可以从连接到我的 Raspberry Pi 的传感器输出温度、压力和湿度。同样的脚本还将读数保存到一个以日期作为文件名的 .CSV 文件中,这样我每天都有一个包含一整天数据的唯一文件。 我在 PHP 页面中实现了一个开源 JavaScript 图表库以绘制读数:
同样在同一个 PHP 页面中,我可以从下拉菜单中 select 上面提到的 .CSV 文件。为此,我使用了 foreach 结构。
无论如何请看下面我的 PHP 代码:
<html>
<center>
<iframe width="800" height="600" src="http://SERVER_IP_ADDRESS/graphs.php" frameborder="0" allowfullscreen="" scrolling="no$
</center>
<head>
<script type="text/javascript"
<script src="//cdnjs.cloudflare.com/ajax/libs/dygraph/2.1.0/dygraph.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/dygraph/2.1.0/dygraph.css" />
</head>
<body>
<div id="graphdiv2"
style="width:700px; height:500px;"></div>
<script type="text/javascript">
g2 = new Dygraph(
document.getElementById("graphdiv2"),
"20180508.csv", // path to CSV file
{rollPeriod: 7,
showRoller: true} // options
);
</script>
</body>
</html>
</head>
<body>
<?php
$filename = 'CSV_index.txt';
$eachlines = file($filename, FILE_IGNORE_NEW_LINES);
?>
<form method="post" action="">
<select name="menu">
<option selected value="base">Please Select</option>
<?php foreach($eachlines as $lines){ //add php code here
echo "<option value='".$lines."'>$lines</option>";
}?>
</select>
<button type="submit" name="submit" >Submit</button>
</form>
<?php
if(isset($_POST["submit"]))
{
$selected_value=$_POST["menu"];
?>
现在这是我想要实现的目标:一旦我从下拉菜单中 select .CSV 文件,我希望它自动出现在下面的行中:
"20180508.csv", // path to CSV file
这是库找到 .CSV 文件路径以绘制该图的地方。因此,通过 selecting 特定的 .CSV,我可以绘制特定日期的相关图表。
我尝试了以下方法,但当然都没有用:
"$selected_value", // path to CSV file
"'$selected_value'", // path to CSV file
非常感谢您提供海带。
已解决! 经过大量阅读,我设法解决了我的问题。 下面的代码起到了作用:
<?php
'echo $selected_value;'
?>