从第一个的内容填充第二个下拉框


populating second drop down box from contents of first

我终于从我的数据库中填充了我的第一个下拉框,但现在第二个下拉框甚至没有出现,我认为调用第二个函数的 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>";
}
?>