我的dropdownmenu中有一个名为$ moduleHTML的变量,$ moduleHTML输出课程中的所有模块。例如。课程:ICT,模块:网络编程,现代数据库应用,电子商务。
现在当我输出$ moduleHTML时,它完美地运行,因为它输出了课程中的所有模块。但是如果我尝试将$ moduleHTML放在下拉菜单中,它只会在下拉菜单(即Web编程)中输出一个模块作为选项。我怎么想实现它,以便在下拉菜单中将多个模块显示为多个选项?
以下是代码:
<?php
$query = "SELECT cm.CourseId, cm.ModuleId,
c.CourseName,
m.ModuleName
FROM Course c
INNER JOIN Course_Module cm ON c.CourseId = cm.CourseId
JOIN Module m ON cm.ModuleId = m.ModuleId
WHERE
(c.CourseId = '".mysql_real_escape_string($courseid)."')
ORDER BY c.CourseName, m.ModuleId";
$num = mysql_num_rows($result = mysql_query($query));
$dataArray = array();
while ($row = mysql_fetch_array($result)) {
$dataArray[$row['CourseId']]['CourseName'] = $row['CourseName'];
$dataArray[$row['CourseId']]['Modules'][$row['ModuleId']]['ModuleName'] = $row['ModuleName'];
}
foreach ($dataArray as $courseId => $courseData) {
$output = "";
$output .= "<p><strong>Course:</strong> " . $courseId . " - " . $courseData['CourseName'] . "</p>";
foreach ($courseData['Modules'] as $moduleId => $moduleData) {
// elaborate module data
$moduleHTML = "";
$moduleHTML .= "<p>" . $moduleId . " - " . $moduleData['ModuleName'] ."</p>";
$output .= $moduleHTML;
}
}
echo $output;
?>
<form action="create_session.php" method="post" name="sessionform">
<table>
<tr>
<th>7: Module:</th>
<td><select name="module" class="modulesDrop">
<option value=""><?php echo $moduleHTML; ?></option>
</tr>
</table>
</form>
答案 0 :(得分:1)
每个模块都应该有自己的option
。
您现在将完整的HTML放入一个option
。
使用简单的循环,您可以浏览所有模块并将它们放在选项之间,将其放在select
标记内。
foreach ($courseData['Modules'] as $moduleId => $moduleData) {
echo '<option value="">'.$moduleId.' - '.$moduleData['ModuleName'].'</option>';
}
通过这种方式,您将获得循环的每个模块的option
。
答案 1 :(得分:0)
运行foreach为每个模块创建一个option
元素:
foreach ($dataArray as $courseId => $courseData)
{
foreach ($courseData['Modules'] as $moduleId => $moduleData)
{
echo '<option value="' . $moduleId . '">' . $moduleData['ModuleName'] . '</option>';
}
}
答案 2 :(得分:0)
你必须以同样的方式做到这一点:
$output = '<select name="module" class="modulesDrop">'.PHP_EOL;
foreach ($courseData['Modules'] as $moduleId => $moduleData) {
$output .= "<option value=".$moduleId.">".$moduleData."</option>".PHP_EOL;
}
}
$output .= '</select>';
应显示下拉列表:)