繁体   English   中英

如何在不使用include()的情况下从其他PHP脚本访问变量

[英]How to access a variable from a different PHP script without using include()

我是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上包含绘图代码,长话短说,它也不起作用,而且我也无法在Internet上找到解决方案。

<?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时,绘图确实起作用,但是由于我想拥有多种绘图类型,所以这并不是一个选择。

在服务器的一个请求中运行的PHP代码与另一请求没有任何连接。 您要么需要再次从数据库获取数据,要么在index.php上输出变量,然后在执行AJAX请求时将数据发布到第二个php文件中。

以最基本的方式,加载basicplot.php?x=$x&y=$y ,这会将数据传递到查询字符串中,然后在basicplot.php中使用$_GET['x']$_GET['y']来获取传递的值。

尝试通过GET方法将$x$y发送到脚本。 然后通过$_GET[]在脚本中获取它们。

将变量定义为global:

global $x, $y;

然后可以在包含文件中访问它们;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM