我是PHP的新手,我正在努力完成一些相对简单的事情。我正在尝试让PHP从MySQL读取数据并将其绘制在Web界面上。主脚本(index.php)中的代码查询MySQL并将两个数值数组读入两个php变量$ x和$ y。加载数据后,可以使用AJAX在index.php上绘制数据。用户可以单击按钮(html),其中onclick事件使用AJAX加载另一个将执行所需绘图的php脚本。我不得不将绘图代码(对于几种类型的绘图)添加到单独的文件而不是index.php中的函数,因为AJAX和onclick事件只能加载服务器上的另一个文件(例如php文件)而不是一个php函数在同一个文件中,变量是(index.php)。因此,执行绘图的php脚本无法访问变量$ x和$ y,因为它们是在index.php中声明的。我正在寻找一种方法来使变量$ x,$ y(在index.php中声明)可以从AJAX调用的不同绘图脚本中访问。
我尝试将其声明为静态和全局,但它们($ x和$ y)在绘图脚本中仍然是看不见的。显然我不能在绘图脚本中导入index.php,也不能从文件中写入和读取$ x和$ y。我尝试使用一个JavaScript函数,它将使用document.write()在onclick中包含绘图代码,长话短说它也没有用,我也无法在互联网上找到解决方案。
<?php
//loading data from mysql
$x = ... //$x and $y are declared here
$y = ...
//basicplot.php is unable to access $x and $y
echo "<button type=\"button\" onclick=\"loadXMLDoc('basicplot.php', 'mydiv')\">Plot data</button>";
echo "<div id=\"mydiv\"><br>[plot goes here]</div>";
?>
注意:当我将代码从basicplot.php复制到index.php时,绘图确实有效,但是因为我想要有许多类型的绘图,而这些绘图并不是真正的选择。
答案 0 :(得分:2)
在对服务器的一个请求中运行的PHP代码与另一个请求没有任何连接。您需要再次从DB获取数据或在index.php上输出变量,并在执行AJAX请求时将该数据发布到第二个php文件。
答案 1 :(得分:1)
以最基本的方式,加载basicplot.php?x=$x&y=$y
传递查询字符串中的数据,然后在basicplot.php中使用$_GET['x']
和$_GET['y']
来获取传递的值。
答案 2 :(得分:1)
尝试通过GET方法将$x
和$y
发送到脚本。并通过$_GET[]
将其添加到该脚本中。
答案 3 :(得分:-4)
将变量定义为全局:
global $x, $y;
然后可以在包含文件中访问它们;