2011-11-18 51 views
1

我在我的dropdownmenu中有一個名爲$ moduleHTML的變量,$ moduleHTML輸出課程中的所有模塊。例如。課程:ICT,模塊:Web編程,現代數據庫應用,電子商務。如何正確地將變量放在下拉菜單中

現在,當我輸出$ 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

你必須這樣做同樣的方式:

$output = '<select name="module" class="modulesDrop">'.PHP_EOL; 
foreach ($courseData['Modules'] as $moduleId => $moduleData) { 
      $output .= "<option value=".$moduleId.">".$moduleData."</option>".PHP_EOL; 
     } 
    } 
$output .= '</select>'; 

應顯示下拉列表:)

0

運行一個foreach來爲每個模塊創建一個option元素:

foreach ($dataArray as $courseId => $courseData) 
{ 
    foreach ($courseData['Modules'] as $moduleId => $moduleData) 
    { 
     echo '<option value="' . $moduleId . '">' . $moduleData['ModuleName'] . '</option>'; 
    } 
} 
1

每個模塊都應該有它自己的option。 您現在將完整的HTML放入一個option

通過一個簡單的循環,你可以通過所有的模塊,並把它們放在選項之間,把它放在select標籤內。

foreach ($courseData['Modules'] as $moduleId => $moduleData) { 
    echo '<option value="">'.$moduleId.' - '.$moduleData['ModuleName'].'</option>'; 
} 

這樣你將得到一個option循環的每個模塊。

+0

儘管這裏的所有答案都是一樣的,但我已經明白了這一點,因爲我最清楚的是恕我直言。 :) – Herbert

相關問題