如何验证表格并检查每个问题是否得到回答



问题保存在数据库中。为了让用户看到问题,它是循环的以及答案。(我不知道我是否解释正确(

我将提供表单的全部代码,我真的不知道该怎么处理这个。我试图实现的是,如果问题没有得到回答,用户就不能点击下一步或提交。但是这个代码,即使用户没有回答,只是点击next并提交,它也会提交。因此最终用户可以获得0分,而事实并非如此。

<form action="applicantAssessmentSave.php" method="post" id="register_form">
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label for="finished_degree" style="color:#fff";>Finished Degree</label>
<select class="form-control" name="finished_degree" id="finished_degree"   onchange= "handleSelectChange(event)" required>
<option value="" selected disabled >Select your finished degree</option>
<option value="BSIT">BSIT</option>
<option value="BSHM">BSHM</option>
<option value="BSBA">BSBA</option>
</select>
</div>

<script type="text/javascript">
function handleSelectChange(event){
var selectElement = event.target;
var value = selectElement.value;
$.ajax({
url:"degree_job_match.php", 
type: "post",    
data: {
"value": $('#finished_degree').val(),
}, 
success:function(data){
}
});
}
</script>
</div>
<?php
$m = 1;
$query = mysqli_query($con, "select * from question_categories") or die(mysqli_error($con));
$count = mysqli_num_rows($query);
while ($row = mysqli_fetch_array($query)) {
$id = $row['id'];
$question = mysqli_query($con, "select * from question where cat_id='".$id."' ") or die(mysqli_error($con));   
?>  
<fieldset>
<input type="hidden" name="cat_id[]" value="<?php echo $row['id'] ?>">
<div class="card" style="background-color: #fff; " > 
<div class="card-body" style="margin-left: 20px;">
<div class="form-check form-check-inline">
<?php 
while ($question_row = mysqli_fetch_array($question)) {
?>
<input type="hidden" name="question_id[<?php echo $row['id'] ?>][<?php echo $question_row['id'] ?>]" value="<?php echo $question_row['id'] ?>">     
<div class="form-group">
<label style="font-weight: 900;">
<strong>
<?php echo $question_row['question']; ?>
</strong>
</label>
<br>
<div class="form-check">
<input class="form-check-input" type="radio" name="answer[<?php echo $row['id'] ?>][<?php echo $question_row['id'] ?>]" value="5" required>
<label class="form-check-label">
Strongly Agree
</label>
</div>
<br>
<div class="form-check">
<input class="form-check-input" type="radio" name="answer[<?php echo $row['id'] ?>][<?php echo $question_row['id'] ?>]" value="4" required>
<label class="form-check-label">
Agree
</label>
</div>
<br>

<div class="form-check">
<input class="form-check-input" type="radio" name="answer[<?php echo $row['id'] ?>][<?php echo $question_row['id'] ?>]" value="3" required>
<label class="form-check-label">
Neutral
</label>
</div>
<br>
<div class="form-check">
<input class="form-check-input" type="radio" name="answer[<?php echo $row['id'] ?>][<?php echo $question_row['id'] ?>]" value="2" required>
<label class="form-check-label">
Disgree
</label>
</div>
<br>
<div class="form-check">
<input class="form-check-input" type="radio" name="answer[<?php echo $row['id'] ?>][<?php echo $question_row['id'] ?>]" value="1" required>
<label class="form-check-label">
Strongly Disagree
</label>
</div>
<br>
</div>
<?php } ?>
</div>
</div>
</div>
<?php if($m!=$count){ ?>
<button name="" id="" class="btn btn-primary next-form btn-sm" type="button" style="background-color: #fff200; color:#000;">
Next
</button>
<?php } if($m!=1){ ?>
<button name="" id="" class="btn btn-warning previous-form" type="button">
Previous
</button>
<?php } ?>
<?php if($m==$count){ ?>
<button  class="btn btn-info submit" id="submit_form">
Submit
</button>
<?php } ?>
</fieldset>
<?php
$m++;
}
?>
</form>

更新

我删除了按钮引导程序的类。现在,它将验证是否未选择该选项。现在我的问题是,即使第一组问题都得到了回答,当点击按钮时,它也无法进入下一页。

更新2我认为这是因为这个脚本

$(document).ready(function(){  
var form_count = 1, previous_form, next_form, total_forms;
total_forms = $("fieldset").length;  
$(".next-form").click(function(){
previous_form = $(this).parent();
next_form = $(this).parent().next();
next_form.show();
previous_form.hide();
setProgressBarValue(++form_count);
});  

我现在该怎么办?

(1(如果您希望用户在没有答案的情况下无法提交,您应该在单选按钮上添加必需的。(2( 如果你想允许用户在没有回答的情况下提交,我认为它运行得很好。但由于Bootstrap,它应该是:

<div class="form-check">
<input class="form-check-input" type="radio" name="answer[<?php echo $row['id'] ?>][<?php echo $question_row['id'] ?>]" value="5">
<label class="form-check-label">
Strongly Agree
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="answer[<?php echo $row['id'] ?>][<?php echo $question_row['id'] ?>]" value="4">
<label class="form-check-label">
Agree
</label>
</div>

如果你有任何其他信息,请告诉我。

相关内容

最新更新