아래에는 "Course"드롭 다운 메뉴와 "Module"드롭 다운 메뉴가 표시되는 PHP 스크립트가 있습니다. 사용자가 "코스"드롭 다운 메뉴에서 코스를 먼저 선택하면 선택한 코스에 속한 모듈 목록이 "모듈"드롭 다운 메뉴에 나타납니다. 그래서 나는 "과정"의 과정 INFO101 - Information Communication Technology
을 선택 말할 수
메뉴 드롭 다운 , 그것은 아래 모듈 드롭에 다음과 같은 모듈을 표시
$sql = "SELECT CourseId, CourseNo, CourseName FROM Course";
$sqlstmt=$mysqli->prepare($sql);
$sqlstmt->execute();
$sqlstmt->bind_result($dbCourseId, $dbCourseNo, $dbCourseName);
$courses = array(); // easier if you don't use generic names for data
$courseHTML = "";
$courseHTML .= '<select name="courses" id="coursesDrop">'.PHP_EOL;
$courseHTML .= '<option value="">Please Select</option>'.PHP_EOL;
while($sqlstmt->fetch())
{
$courseno = $dbCourseNo;
$course = $dbCourseId;
$coursename = $dbCourseName;
$courseHTML .= "<option value='".$course."'>" . $courseno . " - " . $coursename . "</option>".PHP_EOL;
}
$courseHTML .= '</select>';
?>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
<table>
<tr>
<th>Course: <?php echo $courseHTML; ?>
<input id="courseSubmit" type="submit" value="Submit" name="submit" />
</th>
</tr>
</table>
</form>
<?php
if (isset($_POST['submit'])) {
$submittedCourseId = $_POST['courses'];
$query = "SELECT cm.CourseId, cm.ModuleId, c.CourseNo, m.ModuleNo,
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 = ?)
ORDER BY c.CourseName, m.ModuleId";
$qrystmt=$mysqli->prepare($query);
// You only need to call bind_param once
$qrystmt->bind_param("s",$submittedCourseId);
// get result and assign variables (prefix with db)
$qrystmt->execute();
$qrystmt->bind_result($dbCourseId,$dbModuleId,$dbCourseNo,$dbModuleNo,$dbCourseName,$dbModuleName);
$qrystmt->store_result();
$num = $qrystmt->num_rows();
if($num ==0){
echo "<p style='color: red'>Please Select a Course</p>";
} else {
$dataArray = array();
while ($qrystmt->fetch()) {
// data array
$dataArray[$dbCourseId]['CourseName'] = $dbCourseName;
$dataArray[$dbCourseId]['CourseNo'] = $dbCourseNo;
$dataArray[$dbCourseId]['Modules'][$dbModuleId]['ModuleName'] = $dbModuleName;
$dataArray[$dbCourseId]['Modules'][$dbModuleId]['ModuleNo'] = $dbModuleNo;
}
foreach ($dataArray as $foundCourse => $courseData) {
$output = "";
$output .= "<p><strong>Course:</strong> " . $courseData['CourseNo'] . " - " . $courseData['CourseName'] . "</p>";
$moduleHTML = "";
$moduleHTML .= '<select name="module" id="modulesDrop">'.PHP_EOL;
$moduleHTML .= '<option value="">Please Select</option>'.PHP_EOL;
foreach ($courseData['Modules'] as $moduleId => $moduleData) {
$moduleHTML .= "<option value='$moduleId'>" . $moduleData['ModuleNo'] . " - " . $moduleData['ModuleName'] ."</option>".PHP_EOL;
}
}
$moduleHTML .= '</select>';
echo $output;
?>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
<table>
<tr>
<th>Course: <?php echo $moduleHTML; ?>
<input id="courseSubmit" type="submit" value="Submit" name="submit" />
</th>
</tr>
</table>
</form>
create_session.php : 다음은이에 대한 코드는 제가하고 싶은 것은 나는 사용자가로 이동합니다 아래의 양식을 드롭 다운 메뉴에서 모듈 중 하나를 선택하고 제출하려는 지금
CHI2520 - Advanced Web Programming
CHI2220 - Systems Strategy
CHI2350 - Interactive Systems
: 아래의 메뉴는 코스에 해당 QandATable.php 페이지. 하지만 드롭 다운 메뉴에서 모듈 번호와 이름을 검색하고 QandATable.php 페이지에 표시하는 방법을 알고 싶습니다. 나는 $ _SESSION 변수를 어떻게 사용해야 하는지를 알고 있고, 두 페이지에 $ _SESSION 변수를 어디에 써야합니까? 또한 정의되지 않은 변수가 없도록 isset
을 사용해야합니까? 질문에 대한 대답에서
<form action="QandATable.php" method="post" id="sessionForm">
<table><tr><th>6: Module:</th>
<td><?php echo $moduleHTML; ?></td>
</tr>
</table>
<p><strong>11: </strong><input class="questionBtn" type="submit" value="Prepare Questions" name="prequestion" /></p>
</form>
답변을 주셔서 감사합니다. 내가 알아야 할 것은 게시 된 변수가'$ _POST [ 'postedVariable']'에있는 모듈 번호와 모듈 이름에 맞아야한다는 것입니다. – user1819709
postedVariable은 폼에서 변수를 호출 한 값으로 바꿀 수 있습니다. CourseName 또는 위의 코드를 기반으로 비슷한. – Jammin411
당신이'$ _POST [ 'Modules']'를 할 경우, 드롭 다운 메뉴에있는 옵션의 값이'$ dbModuleId'이기 때문에 name 속성을 $ _POST해야한다는 것을 의미합니다. 이제이 $ _POST가 페이지에 필요하지만 QandATable.php에 게시하려면'$ dbModuleNo' 및'$ dbModuleName'을 게시하고 싶습니다. 어떻게 두 변수를 게시 할 수 있습니까? 실제로'$ _POST [ '$ dbModuleNo'];와'$ _POST [ '$ dbModuleName'];'을 할 수 있습니까? – user1819709