以下のコードでは、JavaScriptの検証を表示しています。しかし、moduleSubmit
ボタンをクリックしても、その後は何も表示されませんif (isset($_POST['moduleSubmit'])) {
。私の質問は、ボタンをクリックしてJavaScriptの検証に合格した場合、送信後にフォームを表示するにはどうすればよいですか?
JavaScript
function validation() {
var isDataValid = true;
var courseTextO = document.getElementById("coursesDrop");
var moduleTextO = document.getElementById("modulesDrop");
var errModuleMsgO = document.getElementById("moduleAlert");
if (courseTextO.value == "") {
$('#targetdiv').hide();
$('#assessmentForm').hide();
$('#updateForm').hide();
$('#submitupdatebtn').hide();
errModuleMsgO.innerHTML = "Please Select a Course";
isDataValid = false;
} else {
errModuleMsgO.innerHTML = "";
}
if(isDataValid){
$("#myForm").submit();
}
}
PHP / HTML
<?php
// connect to the database
include('connect.php');
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
die();
}
$sql = "SELECT CourseId, CourseNo, CourseName FROM Course ORDER BY CourseId";
$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;
$outputcourse = "";
while($sqlstmt->fetch())
{
$course = $dbCourseId;
$courseno = $dbCourseNo;
$coursename = $dbCourseName;
$courseHTML .= "<option value='" . $course . "'>" . $courseno . " - " . $coursename . "</option>" . PHP_EOL;
if (isset($_POST['courses']) && ($_POST['courses'] == $course)) {
$outputcourse = "<p><strong>Course:</strong> " . $courseno . " - " . $coursename . "</p>";
}
}
$courseHTML .= '</select>';
?>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" onsubmit="return validation();">
<table>
<tr>
<th>Course: <?php echo $courseHTML; ?></th>
</tr>
</table>
<p>
<input id="moduleSubmit" type="submit" value="Submit Course and Module" name="moduleSubmit" />
</p>
<div id="moduleAlert"></div>
<div id="targetdiv"></div>
</form>
<?php
if (isset($_POST['moduleSubmit'])) {
$sessionquery = "
SELECT SessionId, SessionName, SessionDate, SessionTime, CourseId, SessionActive
FROM Session
WHERE (CourseId = ? AND SessionActive = ?)
ORDER BY SessionName
";
$active = 1;
$sessionqrystmt=$mysqli->prepare($sessionquery);
// You only need to call bind_param once
$sessionqrystmt->bind_param("si",$course, $active);
// get result and assign variables (prefix with db)
$sessionqrystmt->execute();
$sessionqrystmt->bind_result($dbSessionId,$dbSessionName,$dbSessionDate,$dbSessionTime, $dbCourseId, $dbSessionActive);
$sessionqrystmt->store_result();
$sessionnum = $sessionqrystmt->num_rows();
if($sessionnum == 0) {
echo "<p><span style='color: red'>Sorry, You have No Assessments under this Module</span></p>";
}
else
{
echo "";
}
...
}