【发布时间】:2017-06-02 17:55:57
【问题描述】:
PHP-如何将数据发送到另一个php-sql页面并在同一页面上接收图表图像
大家好。我有一个问题,我不知道我该如何解决。我有一个主页,我想将一些数据放在输入字段中,这将发送 数据到另一个页面以创建图表。好的。那不是问题。它工作正常,如果我打开第二页。图表 img 已创建。但是,如果我想留在主页上单击按钮并从第二页接收 img,则 img 是空的,我不知道如何实现这一点。
这里是mainpage.php的简短代码
echo "<form action='#' method='post' type='text'>";
echo "Abzufragendes Jahr [JJJJ]:";
echo '<input type="text" name="eingabe_1" value="">';
echo "<input type='submit' name='eingabe_2' value='DB Abfrage'/>";
echo "<input type='submit' name='ausgabe_statistik' value='Charts erstellen'
formaction='#' formmethod='post'/></br></br></br></br>";
echo "</form>";
//Versuch das Bild zu erzeugen
if(isset($_POST['eingabe_1']) && isset($_POST['ausgabe_statistik'])) {
echo "<img src='charts/charts_jahr.php'> </br>";
}
第二页包含
include("../../PHP/pChart2.1.4/class/pData.class.php");
include("../../PHP/pChart2.1.4/class/pDraw.class.php");
include("../../PHP/pChart2.1.4/class/pImage.class.php");
include("../../SQL/log-in.php");
mysql_select_db(MYSQL_DATENBANK) or die("Auswahl der Datenbank fehlgeschlagen");
for ($a = 1 ; $a <= 365 ; $a++) {
$kalenderwoche[] = $a;
}
$var = $_POST['eingabe_11'];
$var_jahr = "j" . $var;
$Result = mysql_query("SELECT sum(gewicht) as gewicht_1 FROM $var_jahr group by datum",$db_link);
while($row = mysql_fetch_array($Result))
{
$gewicht[] = $row["gewicht_1"];
$fett[] = $row["fett"];
}
//chartpart
$myData = new pData();
$myData->addPoints($gewicht,"Serie1");
..
.
我考虑了另一种解决方案,将临时变量保存在 sql 中并从中获取 $var_jahr 的值。但我认为这不是解决方案吗?
br 并感谢您的解决方案!
【问题讨论】:
-
不要使用
mysql_*函数。它们自 v5.5(2013 年 6 月)起已被弃用,自 v7.0(2015 年 12 月)起已被删除。而是将mysqli_* 或PDO 函数与prepared statements 和bound parameters 一起使用。 -
您的代码容易受到SQL injection 攻击。您应该使用mysqli 或PDO 准备好的语句和this post 中描述的绑定参数。
-
你想从客户端做一个异步调用。
-
感谢信息。我很快就会改变。从来没想过。我是那个场景的新手。 @mkaatman,所以我有印象,这不可能是我想做的。所以我必须在我的 sql 数据库中绑定一个 tmp var 并查询它吗?
-
@ein_noch_mieser_progger 有可能,这是一个ajax请求。您有一个带有表单的渲染 HTML,或者您想要输入数据,您可以立即使用 javascript (d3js) 渲染它,或者您可以对处理数据并发回图像的 PHP 脚本进行 ajax 调用。这两个选项都将避免页面刷新/重定向。
标签: php html image error-handling pchart