2012-11-30 2 views
0

Lorsque l'utilisateur ne sélectionne pas une option dans le menu déroulant, il n'affiche pas le message d'erreur "Veuillez sélectionner un cours". Quelqu'un peut-il voir pourquoi il n'affiche pas le message et voir si je fais la validation php juste pour être en mesure de vérifier si une option déroulante a été sélectionnée ou non?Le message de validation php n'apparaît pas

est Ci-dessous le code:

$sql = "SELECT CourseId, CourseNo, CourseName FROM Course ORDER BY CourseNo"; 

$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>'; 

    $submittedCourseId = (isset($_POST['courses'])) ? $_POST['courses'] : ''; 
    $errormsg = (isset($errormsg)) ? $errormsg : ''; 

     ?> 
    <h1>CREATING A NEW ASSESSMENT</h1> 

     <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> 
     <tr> 
     <td id="errormsg"><?php echo $errormsg; ?></td> 
     </tr> 
     </table> 
     </form> 

     <?php 

if (isset($_POST['submit'])) { 


$submittedCourseId = $_POST['courses']; 

if($submittedCourseId){ 

?> 

//need to do functions here 

<?php 
} 
else{ 
$errormsg = "Please Select a Course"; 
} 
?> 

Répondre

2

$errormsg est rempli APRÈS le code HTML est en cours de production. Par conséquent, $errormsg sera toujours vide au moment de sa sortie.

1

Au moment du chargement de la page, $ errormsg n'a pas encore été défini. Essayez d'obtenir la validation avant le html

Questions connexes