我终于从我的数据库中填充了我的第一个下拉框,但现在第二个下拉框甚至没有出现,我认为调用第二个函数的 if 语句搞砸了,但不确定什么也不确定我的"WHERE"语句在我的查询中是否正确 这是我的代码
echo "<tr>";
echo "<td>Department</td>";
echo "<td><div id='"deptdiv'"><select name='"department'">";
echo "<option>Select Department</option>";
echo "</td>";
while($row=mysql_fetch_array($result))
{
echo '<option value="'.$row['abbrev'].'">'.$row['abbrev'].'</option>';
}
if($_GET[department] == "department" && isset($_GET[department])) {
drop_2($_GET[department]);
}
function drop_2($id)
{
$query = mysql_query("SELECT courseno, name FROM course WHERE department=$id");
echo "<tr>";
echo "<td>Course</td>";
echo "<td><div id '"coursediv'"><select name='"course'">";
echo "<option>Select Course</option>";
echo "</td>";
while($r=mysql_fetch_array($query))
{
echo '<option value="'.$r['courseno'].'">'.$r['name'].'</option>';
}
}
?>
我很惊讶第一个下拉列表显示,因为您在<select>
元素中有表标签,并且从未关闭该标签。我认为这是主要问题。尝试像:
echo "<td><div id='"deptdiv'"><select name='"department'">";
echo "<option>Select Department</option>";
while($row=mysql_fetch_array($result))
{
echo '<option value="'.$row['abbrev'].'">'.$row['abbrev'].'</option>';
}
echo "</select></div></td>";
此外,您还需要在 GET 变量周围加上引号,以便 PHP 不会像$_GET['department']
那样认为它们是常量,并在 drop_2 函数末尾关闭 select 标签。同样在函数中,关闭选择后将</td>
标签移动到。
希望有帮助。
这是您更正的代码。
echo "<tr>";
echo "<td>Department</td>";
echo "<td><div id='"deptdiv'"><select name='"department'">";
echo "<option>Select Department</option>";
while($row=mysql_fetch_array($result))
{
echo '<option value="'.$row['abbrev'].'">'.$row['abbrev'].'</option>';
}
echo "</div>";
echo "</td></tr>";
if($_GET['department'] == "department" && isset($_GET['department'])) {
drop_2($_GET['department']);
}
function drop_2($id)
{
$query = mysql_query("SELECT courseno, name FROM course WHERE department=$id");
echo "<tr>";
echo "<td>Course</td>";
echo "<td><div id '"coursediv'"><select name='"course'">";
echo "<option>Select Course</option>";
while($r=mysql_fetch_array($query))
{
echo '<option value="'.$r['courseno'].'">'.$r['name'].'</option>';
}
echo "</div>";
echo "</td></tr>";
}
?>