所以我有三个php文件。第一个包含HTML表单和对第二个php文件的操作。第二个文件包括第三个php文件,总共三个文件。当用户提交HTML表单时,第二个php文件将正确显示。但是,第二个文件应该从位于第三个文件中的函数回显一个变量,但事实并非如此。此变量在第三个文件中声明。所有文件都在同一目录中。
我能够从函数成功回显文字字符串。我也能够简单地在第二个文件中回显该变量,而不必在第三个文件中调用该函数。即使在第三个文件中定义了此变量,该操作仍然成功。
第一个文件
<html>
<head>
<title> Searching for volunteers </title>
</head>
<body>
<h3> Provide search criteria below. </h3>
<form action="queryResults.php" method="post">
<h4> Primary Days for Volunteers </h4>
<input type="checkbox" name="mondays" value="mondays"> Mondays
<input type="checkbox" name="wednesdays" value="wednesdays"> Wednesdays <br><br>
<h4> Volunteer Roles </h4>
<input type="checkbox" name="director" value="director"> Director
<input type="checkbox" name="supportStaff" value="supportStaff"> Support Staff <br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
第二个文件,名为queryResults.php
<html>
<head>
<title> Query results </title>
</head>
<body>
<?php
include "buildQuery.php";
buildQueryy();
?>
</body>
</html>
第三个文件,名为buildQuery.php
<html>
<head>
<title> Building query </title>
</head>
<body>
<?php
/* Variables */
$sqlQueryy = "SELECT DISTINCT Volunteers.firstName, Volunteers.lastName, c.emailAddress, c.primaryPhoneNumber, c.secondaryPhoneNumber FROM Volunteers AS v, ContactInfo AS c INNER JOIN Volunteers ON c.id = Volunteers.id";
/* Functions */
function buildQueryy () {
echo "This line prints fine";
echo $sqlQueryy; // this variable doesn't print to the screen.
}
?>
</body>
</html>